@fastino-ai/pioneer-cli 0.2.6 → 0.2.8

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 (1069) hide show
  1. package/README.md +51 -71
  2. package/package.json +7 -2
  3. package/src/api.ts +1331 -213
  4. package/src/client/WebSocketClient.ts +25 -7
  5. package/src/config.ts +8 -1
  6. package/src/index.tsx +2612 -468
  7. package/.claude/settings.local.json +0 -38
  8. package/.cursor/rules/api-documentation.mdc +0 -17
  9. package/.cursor/rules/backend-location-rule.mdc +0 -5
  10. package/.github/workflows/pioneer-cli-tests.yml +0 -44
  11. package/Medical_NER_Dataset_1.jsonl +0 -50
  12. package/REPRODUCTION_REPORT.md +0 -195
  13. package/alphago_reproduction.ipynb +0 -902
  14. package/bun.lock +0 -264
  15. package/cache/cache.db +0 -0
  16. package/cache/cache.db-shm +0 -0
  17. package/cache/cache.db-wal +0 -0
  18. package/compare_results.py +0 -141
  19. package/datasets/Medical_NER_Dataset.json +0 -2609
  20. package/datasets/ner-dataset.json +0 -57
  21. package/datasets/test-remote.json +0 -41
  22. package/datasets/test-warning.json +0 -49
  23. package/install.sh +0 -68
  24. package/monitor_and_test.py +0 -111
  25. package/quick_test.py +0 -39
  26. package/reproduce_degradation.py +0 -147
  27. package/tsconfig.json +0 -22
  28. package/workspaces/0-skinny-mink-of-management/input/private/test.csv +0 -100
  29. package/workspaces/0-skinny-mink-of-management/input/public/description.md +0 -70
  30. package/workspaces/0-skinny-mink-of-management/input/public/images/1.jpg +0 -0
  31. package/workspaces/0-skinny-mink-of-management/input/public/images/10.jpg +0 -0
  32. package/workspaces/0-skinny-mink-of-management/input/public/images/100.jpg +0 -0
  33. package/workspaces/0-skinny-mink-of-management/input/public/images/1000.jpg +0 -0
  34. package/workspaces/0-skinny-mink-of-management/input/public/images/1001.jpg +0 -0
  35. package/workspaces/0-skinny-mink-of-management/input/public/images/1002.jpg +0 -0
  36. package/workspaces/0-skinny-mink-of-management/input/public/images/1003.jpg +0 -0
  37. package/workspaces/0-skinny-mink-of-management/input/public/images/1004.jpg +0 -0
  38. package/workspaces/0-skinny-mink-of-management/input/public/images/1005.jpg +0 -0
  39. package/workspaces/0-skinny-mink-of-management/input/public/images/1006.jpg +0 -0
  40. package/workspaces/0-skinny-mink-of-management/input/public/images/1007.jpg +0 -0
  41. package/workspaces/0-skinny-mink-of-management/input/public/images/101.jpg +0 -0
  42. package/workspaces/0-skinny-mink-of-management/input/public/images/1010.jpg +0 -0
  43. package/workspaces/0-skinny-mink-of-management/input/public/images/1011.jpg +0 -0
  44. package/workspaces/0-skinny-mink-of-management/input/public/images/1013.jpg +0 -0
  45. package/workspaces/0-skinny-mink-of-management/input/public/images/1014.jpg +0 -0
  46. package/workspaces/0-skinny-mink-of-management/input/public/images/1016.jpg +0 -0
  47. package/workspaces/0-skinny-mink-of-management/input/public/images/1017.jpg +0 -0
  48. package/workspaces/0-skinny-mink-of-management/input/public/images/1019.jpg +0 -0
  49. package/workspaces/0-skinny-mink-of-management/input/public/images/1021.jpg +0 -0
  50. package/workspaces/0-skinny-mink-of-management/input/public/images/1023.jpg +0 -0
  51. package/workspaces/0-skinny-mink-of-management/input/public/images/1024.jpg +0 -0
  52. package/workspaces/0-skinny-mink-of-management/input/public/images/1025.jpg +0 -0
  53. package/workspaces/0-skinny-mink-of-management/input/public/images/1027.jpg +0 -0
  54. package/workspaces/0-skinny-mink-of-management/input/public/images/103.jpg +0 -0
  55. package/workspaces/0-skinny-mink-of-management/input/public/images/1030.jpg +0 -0
  56. package/workspaces/0-skinny-mink-of-management/input/public/images/1031.jpg +0 -0
  57. package/workspaces/0-skinny-mink-of-management/input/public/images/1032.jpg +0 -0
  58. package/workspaces/0-skinny-mink-of-management/input/public/images/1034.jpg +0 -0
  59. package/workspaces/0-skinny-mink-of-management/input/public/images/1036.jpg +0 -0
  60. package/workspaces/0-skinny-mink-of-management/input/public/images/1037.jpg +0 -0
  61. package/workspaces/0-skinny-mink-of-management/input/public/images/1039.jpg +0 -0
  62. package/workspaces/0-skinny-mink-of-management/input/public/images/1040.jpg +0 -0
  63. package/workspaces/0-skinny-mink-of-management/input/public/images/1041.jpg +0 -0
  64. package/workspaces/0-skinny-mink-of-management/input/public/images/1042.jpg +0 -0
  65. package/workspaces/0-skinny-mink-of-management/input/public/images/1046.jpg +0 -0
  66. package/workspaces/0-skinny-mink-of-management/input/public/images/1048.jpg +0 -0
  67. package/workspaces/0-skinny-mink-of-management/input/public/images/1049.jpg +0 -0
  68. package/workspaces/0-skinny-mink-of-management/input/public/images/1051.jpg +0 -0
  69. package/workspaces/0-skinny-mink-of-management/input/public/images/1052.jpg +0 -0
  70. package/workspaces/0-skinny-mink-of-management/input/public/images/1056.jpg +0 -0
  71. package/workspaces/0-skinny-mink-of-management/input/public/images/1059.jpg +0 -0
  72. package/workspaces/0-skinny-mink-of-management/input/public/images/106.jpg +0 -0
  73. package/workspaces/0-skinny-mink-of-management/input/public/images/1061.jpg +0 -0
  74. package/workspaces/0-skinny-mink-of-management/input/public/images/1062.jpg +0 -0
  75. package/workspaces/0-skinny-mink-of-management/input/public/images/1065.jpg +0 -0
  76. package/workspaces/0-skinny-mink-of-management/input/public/images/1066.jpg +0 -0
  77. package/workspaces/0-skinny-mink-of-management/input/public/images/107.jpg +0 -0
  78. package/workspaces/0-skinny-mink-of-management/input/public/images/1072.jpg +0 -0
  79. package/workspaces/0-skinny-mink-of-management/input/public/images/1073.jpg +0 -0
  80. package/workspaces/0-skinny-mink-of-management/input/public/images/1076.jpg +0 -0
  81. package/workspaces/0-skinny-mink-of-management/input/public/images/1077.jpg +0 -0
  82. package/workspaces/0-skinny-mink-of-management/input/public/images/108.jpg +0 -0
  83. package/workspaces/0-skinny-mink-of-management/input/public/images/1080.jpg +0 -0
  84. package/workspaces/0-skinny-mink-of-management/input/public/images/1081.jpg +0 -0
  85. package/workspaces/0-skinny-mink-of-management/input/public/images/1083.jpg +0 -0
  86. package/workspaces/0-skinny-mink-of-management/input/public/images/1085.jpg +0 -0
  87. package/workspaces/0-skinny-mink-of-management/input/public/images/1087.jpg +0 -0
  88. package/workspaces/0-skinny-mink-of-management/input/public/images/1088.jpg +0 -0
  89. package/workspaces/0-skinny-mink-of-management/input/public/images/1089.jpg +0 -0
  90. package/workspaces/0-skinny-mink-of-management/input/public/images/109.jpg +0 -0
  91. package/workspaces/0-skinny-mink-of-management/input/public/images/1090.jpg +0 -0
  92. package/workspaces/0-skinny-mink-of-management/input/public/images/1093.jpg +0 -0
  93. package/workspaces/0-skinny-mink-of-management/input/public/images/1094.jpg +0 -0
  94. package/workspaces/0-skinny-mink-of-management/input/public/images/1095.jpg +0 -0
  95. package/workspaces/0-skinny-mink-of-management/input/public/images/1096.jpg +0 -0
  96. package/workspaces/0-skinny-mink-of-management/input/public/images/1097.jpg +0 -0
  97. package/workspaces/0-skinny-mink-of-management/input/public/images/1098.jpg +0 -0
  98. package/workspaces/0-skinny-mink-of-management/input/public/images/11.jpg +0 -0
  99. package/workspaces/0-skinny-mink-of-management/input/public/images/1100.jpg +0 -0
  100. package/workspaces/0-skinny-mink-of-management/input/public/images/1101.jpg +0 -0
  101. package/workspaces/0-skinny-mink-of-management/input/public/images/1110.jpg +0 -0
  102. package/workspaces/0-skinny-mink-of-management/input/public/images/1112.jpg +0 -0
  103. package/workspaces/0-skinny-mink-of-management/input/public/images/1113.jpg +0 -0
  104. package/workspaces/0-skinny-mink-of-management/input/public/images/1117.jpg +0 -0
  105. package/workspaces/0-skinny-mink-of-management/input/public/images/1118.jpg +0 -0
  106. package/workspaces/0-skinny-mink-of-management/input/public/images/1119.jpg +0 -0
  107. package/workspaces/0-skinny-mink-of-management/input/public/images/1120.jpg +0 -0
  108. package/workspaces/0-skinny-mink-of-management/input/public/images/1121.jpg +0 -0
  109. package/workspaces/0-skinny-mink-of-management/input/public/images/1123.jpg +0 -0
  110. package/workspaces/0-skinny-mink-of-management/input/public/images/1124.jpg +0 -0
  111. package/workspaces/0-skinny-mink-of-management/input/public/images/1125.jpg +0 -0
  112. package/workspaces/0-skinny-mink-of-management/input/public/images/1128.jpg +0 -0
  113. package/workspaces/0-skinny-mink-of-management/input/public/images/1130.jpg +0 -0
  114. package/workspaces/0-skinny-mink-of-management/input/public/images/1131.jpg +0 -0
  115. package/workspaces/0-skinny-mink-of-management/input/public/images/1132.jpg +0 -0
  116. package/workspaces/0-skinny-mink-of-management/input/public/images/1134.jpg +0 -0
  117. package/workspaces/0-skinny-mink-of-management/input/public/images/1135.jpg +0 -0
  118. package/workspaces/0-skinny-mink-of-management/input/public/images/1136.jpg +0 -0
  119. package/workspaces/0-skinny-mink-of-management/input/public/images/1142.jpg +0 -0
  120. package/workspaces/0-skinny-mink-of-management/input/public/images/1144.jpg +0 -0
  121. package/workspaces/0-skinny-mink-of-management/input/public/images/1145.jpg +0 -0
  122. package/workspaces/0-skinny-mink-of-management/input/public/images/1147.jpg +0 -0
  123. package/workspaces/0-skinny-mink-of-management/input/public/images/1148.jpg +0 -0
  124. package/workspaces/0-skinny-mink-of-management/input/public/images/115.jpg +0 -0
  125. package/workspaces/0-skinny-mink-of-management/input/public/images/1152.jpg +0 -0
  126. package/workspaces/0-skinny-mink-of-management/input/public/images/1153.jpg +0 -0
  127. package/workspaces/0-skinny-mink-of-management/input/public/images/1154.jpg +0 -0
  128. package/workspaces/0-skinny-mink-of-management/input/public/images/1156.jpg +0 -0
  129. package/workspaces/0-skinny-mink-of-management/input/public/images/1157.jpg +0 -0
  130. package/workspaces/0-skinny-mink-of-management/input/public/images/1159.jpg +0 -0
  131. package/workspaces/0-skinny-mink-of-management/input/public/images/116.jpg +0 -0
  132. package/workspaces/0-skinny-mink-of-management/input/public/images/1160.jpg +0 -0
  133. package/workspaces/0-skinny-mink-of-management/input/public/images/1163.jpg +0 -0
  134. package/workspaces/0-skinny-mink-of-management/input/public/images/1165.jpg +0 -0
  135. package/workspaces/0-skinny-mink-of-management/input/public/images/1166.jpg +0 -0
  136. package/workspaces/0-skinny-mink-of-management/input/public/images/1167.jpg +0 -0
  137. package/workspaces/0-skinny-mink-of-management/input/public/images/1168.jpg +0 -0
  138. package/workspaces/0-skinny-mink-of-management/input/public/images/1169.jpg +0 -0
  139. package/workspaces/0-skinny-mink-of-management/input/public/images/1170.jpg +0 -0
  140. package/workspaces/0-skinny-mink-of-management/input/public/images/1171.jpg +0 -0
  141. package/workspaces/0-skinny-mink-of-management/input/public/images/1172.jpg +0 -0
  142. package/workspaces/0-skinny-mink-of-management/input/public/images/1173.jpg +0 -0
  143. package/workspaces/0-skinny-mink-of-management/input/public/images/1174.jpg +0 -0
  144. package/workspaces/0-skinny-mink-of-management/input/public/images/1175.jpg +0 -0
  145. package/workspaces/0-skinny-mink-of-management/input/public/images/1176.jpg +0 -0
  146. package/workspaces/0-skinny-mink-of-management/input/public/images/1179.jpg +0 -0
  147. package/workspaces/0-skinny-mink-of-management/input/public/images/118.jpg +0 -0
  148. package/workspaces/0-skinny-mink-of-management/input/public/images/1180.jpg +0 -0
  149. package/workspaces/0-skinny-mink-of-management/input/public/images/1182.jpg +0 -0
  150. package/workspaces/0-skinny-mink-of-management/input/public/images/1184.jpg +0 -0
  151. package/workspaces/0-skinny-mink-of-management/input/public/images/1186.jpg +0 -0
  152. package/workspaces/0-skinny-mink-of-management/input/public/images/1187.jpg +0 -0
  153. package/workspaces/0-skinny-mink-of-management/input/public/images/1194.jpg +0 -0
  154. package/workspaces/0-skinny-mink-of-management/input/public/images/1196.jpg +0 -0
  155. package/workspaces/0-skinny-mink-of-management/input/public/images/1197.jpg +0 -0
  156. package/workspaces/0-skinny-mink-of-management/input/public/images/1198.jpg +0 -0
  157. package/workspaces/0-skinny-mink-of-management/input/public/images/120.jpg +0 -0
  158. package/workspaces/0-skinny-mink-of-management/input/public/images/1200.jpg +0 -0
  159. package/workspaces/0-skinny-mink-of-management/input/public/images/1201.jpg +0 -0
  160. package/workspaces/0-skinny-mink-of-management/input/public/images/1202.jpg +0 -0
  161. package/workspaces/0-skinny-mink-of-management/input/public/images/1205.jpg +0 -0
  162. package/workspaces/0-skinny-mink-of-management/input/public/images/1206.jpg +0 -0
  163. package/workspaces/0-skinny-mink-of-management/input/public/images/1208.jpg +0 -0
  164. package/workspaces/0-skinny-mink-of-management/input/public/images/1210.jpg +0 -0
  165. package/workspaces/0-skinny-mink-of-management/input/public/images/1211.jpg +0 -0
  166. package/workspaces/0-skinny-mink-of-management/input/public/images/1213.jpg +0 -0
  167. package/workspaces/0-skinny-mink-of-management/input/public/images/1216.jpg +0 -0
  168. package/workspaces/0-skinny-mink-of-management/input/public/images/1217.jpg +0 -0
  169. package/workspaces/0-skinny-mink-of-management/input/public/images/1218.jpg +0 -0
  170. package/workspaces/0-skinny-mink-of-management/input/public/images/1219.jpg +0 -0
  171. package/workspaces/0-skinny-mink-of-management/input/public/images/122.jpg +0 -0
  172. package/workspaces/0-skinny-mink-of-management/input/public/images/1220.jpg +0 -0
  173. package/workspaces/0-skinny-mink-of-management/input/public/images/1221.jpg +0 -0
  174. package/workspaces/0-skinny-mink-of-management/input/public/images/1222.jpg +0 -0
  175. package/workspaces/0-skinny-mink-of-management/input/public/images/1223.jpg +0 -0
  176. package/workspaces/0-skinny-mink-of-management/input/public/images/1225.jpg +0 -0
  177. package/workspaces/0-skinny-mink-of-management/input/public/images/1226.jpg +0 -0
  178. package/workspaces/0-skinny-mink-of-management/input/public/images/1228.jpg +0 -0
  179. package/workspaces/0-skinny-mink-of-management/input/public/images/1229.jpg +0 -0
  180. package/workspaces/0-skinny-mink-of-management/input/public/images/1231.jpg +0 -0
  181. package/workspaces/0-skinny-mink-of-management/input/public/images/1232.jpg +0 -0
  182. package/workspaces/0-skinny-mink-of-management/input/public/images/1235.jpg +0 -0
  183. package/workspaces/0-skinny-mink-of-management/input/public/images/1236.jpg +0 -0
  184. package/workspaces/0-skinny-mink-of-management/input/public/images/1238.jpg +0 -0
  185. package/workspaces/0-skinny-mink-of-management/input/public/images/1239.jpg +0 -0
  186. package/workspaces/0-skinny-mink-of-management/input/public/images/124.jpg +0 -0
  187. package/workspaces/0-skinny-mink-of-management/input/public/images/1240.jpg +0 -0
  188. package/workspaces/0-skinny-mink-of-management/input/public/images/1242.jpg +0 -0
  189. package/workspaces/0-skinny-mink-of-management/input/public/images/1243.jpg +0 -0
  190. package/workspaces/0-skinny-mink-of-management/input/public/images/1244.jpg +0 -0
  191. package/workspaces/0-skinny-mink-of-management/input/public/images/1245.jpg +0 -0
  192. package/workspaces/0-skinny-mink-of-management/input/public/images/1249.jpg +0 -0
  193. package/workspaces/0-skinny-mink-of-management/input/public/images/1250.jpg +0 -0
  194. package/workspaces/0-skinny-mink-of-management/input/public/images/1251.jpg +0 -0
  195. package/workspaces/0-skinny-mink-of-management/input/public/images/1253.jpg +0 -0
  196. package/workspaces/0-skinny-mink-of-management/input/public/images/1254.jpg +0 -0
  197. package/workspaces/0-skinny-mink-of-management/input/public/images/1255.jpg +0 -0
  198. package/workspaces/0-skinny-mink-of-management/input/public/images/1256.jpg +0 -0
  199. package/workspaces/0-skinny-mink-of-management/input/public/images/1257.jpg +0 -0
  200. package/workspaces/0-skinny-mink-of-management/input/public/images/1258.jpg +0 -0
  201. package/workspaces/0-skinny-mink-of-management/input/public/images/1262.jpg +0 -0
  202. package/workspaces/0-skinny-mink-of-management/input/public/images/1263.jpg +0 -0
  203. package/workspaces/0-skinny-mink-of-management/input/public/images/1265.jpg +0 -0
  204. package/workspaces/0-skinny-mink-of-management/input/public/images/1268.jpg +0 -0
  205. package/workspaces/0-skinny-mink-of-management/input/public/images/1269.jpg +0 -0
  206. package/workspaces/0-skinny-mink-of-management/input/public/images/127.jpg +0 -0
  207. package/workspaces/0-skinny-mink-of-management/input/public/images/1270.jpg +0 -0
  208. package/workspaces/0-skinny-mink-of-management/input/public/images/1271.jpg +0 -0
  209. package/workspaces/0-skinny-mink-of-management/input/public/images/1273.jpg +0 -0
  210. package/workspaces/0-skinny-mink-of-management/input/public/images/1275.jpg +0 -0
  211. package/workspaces/0-skinny-mink-of-management/input/public/images/1276.jpg +0 -0
  212. package/workspaces/0-skinny-mink-of-management/input/public/images/1277.jpg +0 -0
  213. package/workspaces/0-skinny-mink-of-management/input/public/images/1278.jpg +0 -0
  214. package/workspaces/0-skinny-mink-of-management/input/public/images/1281.jpg +0 -0
  215. package/workspaces/0-skinny-mink-of-management/input/public/images/1282.jpg +0 -0
  216. package/workspaces/0-skinny-mink-of-management/input/public/images/1283.jpg +0 -0
  217. package/workspaces/0-skinny-mink-of-management/input/public/images/1284.jpg +0 -0
  218. package/workspaces/0-skinny-mink-of-management/input/public/images/1286.jpg +0 -0
  219. package/workspaces/0-skinny-mink-of-management/input/public/images/1287.jpg +0 -0
  220. package/workspaces/0-skinny-mink-of-management/input/public/images/1289.jpg +0 -0
  221. package/workspaces/0-skinny-mink-of-management/input/public/images/129.jpg +0 -0
  222. package/workspaces/0-skinny-mink-of-management/input/public/images/1291.jpg +0 -0
  223. package/workspaces/0-skinny-mink-of-management/input/public/images/1292.jpg +0 -0
  224. package/workspaces/0-skinny-mink-of-management/input/public/images/1294.jpg +0 -0
  225. package/workspaces/0-skinny-mink-of-management/input/public/images/1296.jpg +0 -0
  226. package/workspaces/0-skinny-mink-of-management/input/public/images/1299.jpg +0 -0
  227. package/workspaces/0-skinny-mink-of-management/input/public/images/130.jpg +0 -0
  228. package/workspaces/0-skinny-mink-of-management/input/public/images/1300.jpg +0 -0
  229. package/workspaces/0-skinny-mink-of-management/input/public/images/1301.jpg +0 -0
  230. package/workspaces/0-skinny-mink-of-management/input/public/images/1302.jpg +0 -0
  231. package/workspaces/0-skinny-mink-of-management/input/public/images/1305.jpg +0 -0
  232. package/workspaces/0-skinny-mink-of-management/input/public/images/1308.jpg +0 -0
  233. package/workspaces/0-skinny-mink-of-management/input/public/images/1309.jpg +0 -0
  234. package/workspaces/0-skinny-mink-of-management/input/public/images/1310.jpg +0 -0
  235. package/workspaces/0-skinny-mink-of-management/input/public/images/1311.jpg +0 -0
  236. package/workspaces/0-skinny-mink-of-management/input/public/images/1312.jpg +0 -0
  237. package/workspaces/0-skinny-mink-of-management/input/public/images/1317.jpg +0 -0
  238. package/workspaces/0-skinny-mink-of-management/input/public/images/1319.jpg +0 -0
  239. package/workspaces/0-skinny-mink-of-management/input/public/images/132.jpg +0 -0
  240. package/workspaces/0-skinny-mink-of-management/input/public/images/1320.jpg +0 -0
  241. package/workspaces/0-skinny-mink-of-management/input/public/images/1322.jpg +0 -0
  242. package/workspaces/0-skinny-mink-of-management/input/public/images/1323.jpg +0 -0
  243. package/workspaces/0-skinny-mink-of-management/input/public/images/1324.jpg +0 -0
  244. package/workspaces/0-skinny-mink-of-management/input/public/images/1325.jpg +0 -0
  245. package/workspaces/0-skinny-mink-of-management/input/public/images/1326.jpg +0 -0
  246. package/workspaces/0-skinny-mink-of-management/input/public/images/1327.jpg +0 -0
  247. package/workspaces/0-skinny-mink-of-management/input/public/images/1328.jpg +0 -0
  248. package/workspaces/0-skinny-mink-of-management/input/public/images/1329.jpg +0 -0
  249. package/workspaces/0-skinny-mink-of-management/input/public/images/133.jpg +0 -0
  250. package/workspaces/0-skinny-mink-of-management/input/public/images/1330.jpg +0 -0
  251. package/workspaces/0-skinny-mink-of-management/input/public/images/1335.jpg +0 -0
  252. package/workspaces/0-skinny-mink-of-management/input/public/images/1337.jpg +0 -0
  253. package/workspaces/0-skinny-mink-of-management/input/public/images/1339.jpg +0 -0
  254. package/workspaces/0-skinny-mink-of-management/input/public/images/134.jpg +0 -0
  255. package/workspaces/0-skinny-mink-of-management/input/public/images/1340.jpg +0 -0
  256. package/workspaces/0-skinny-mink-of-management/input/public/images/1341.jpg +0 -0
  257. package/workspaces/0-skinny-mink-of-management/input/public/images/1342.jpg +0 -0
  258. package/workspaces/0-skinny-mink-of-management/input/public/images/1344.jpg +0 -0
  259. package/workspaces/0-skinny-mink-of-management/input/public/images/1345.jpg +0 -0
  260. package/workspaces/0-skinny-mink-of-management/input/public/images/1346.jpg +0 -0
  261. package/workspaces/0-skinny-mink-of-management/input/public/images/1347.jpg +0 -0
  262. package/workspaces/0-skinny-mink-of-management/input/public/images/1348.jpg +0 -0
  263. package/workspaces/0-skinny-mink-of-management/input/public/images/1349.jpg +0 -0
  264. package/workspaces/0-skinny-mink-of-management/input/public/images/1350.jpg +0 -0
  265. package/workspaces/0-skinny-mink-of-management/input/public/images/1352.jpg +0 -0
  266. package/workspaces/0-skinny-mink-of-management/input/public/images/1353.jpg +0 -0
  267. package/workspaces/0-skinny-mink-of-management/input/public/images/1355.jpg +0 -0
  268. package/workspaces/0-skinny-mink-of-management/input/public/images/1356.jpg +0 -0
  269. package/workspaces/0-skinny-mink-of-management/input/public/images/1358.jpg +0 -0
  270. package/workspaces/0-skinny-mink-of-management/input/public/images/1359.jpg +0 -0
  271. package/workspaces/0-skinny-mink-of-management/input/public/images/1360.jpg +0 -0
  272. package/workspaces/0-skinny-mink-of-management/input/public/images/1365.jpg +0 -0
  273. package/workspaces/0-skinny-mink-of-management/input/public/images/1366.jpg +0 -0
  274. package/workspaces/0-skinny-mink-of-management/input/public/images/1367.jpg +0 -0
  275. package/workspaces/0-skinny-mink-of-management/input/public/images/1370.jpg +0 -0
  276. package/workspaces/0-skinny-mink-of-management/input/public/images/1372.jpg +0 -0
  277. package/workspaces/0-skinny-mink-of-management/input/public/images/1373.jpg +0 -0
  278. package/workspaces/0-skinny-mink-of-management/input/public/images/1374.jpg +0 -0
  279. package/workspaces/0-skinny-mink-of-management/input/public/images/1375.jpg +0 -0
  280. package/workspaces/0-skinny-mink-of-management/input/public/images/1377.jpg +0 -0
  281. package/workspaces/0-skinny-mink-of-management/input/public/images/1378.jpg +0 -0
  282. package/workspaces/0-skinny-mink-of-management/input/public/images/1379.jpg +0 -0
  283. package/workspaces/0-skinny-mink-of-management/input/public/images/1380.jpg +0 -0
  284. package/workspaces/0-skinny-mink-of-management/input/public/images/1381.jpg +0 -0
  285. package/workspaces/0-skinny-mink-of-management/input/public/images/1384.jpg +0 -0
  286. package/workspaces/0-skinny-mink-of-management/input/public/images/1386.jpg +0 -0
  287. package/workspaces/0-skinny-mink-of-management/input/public/images/1388.jpg +0 -0
  288. package/workspaces/0-skinny-mink-of-management/input/public/images/139.jpg +0 -0
  289. package/workspaces/0-skinny-mink-of-management/input/public/images/1390.jpg +0 -0
  290. package/workspaces/0-skinny-mink-of-management/input/public/images/1391.jpg +0 -0
  291. package/workspaces/0-skinny-mink-of-management/input/public/images/1392.jpg +0 -0
  292. package/workspaces/0-skinny-mink-of-management/input/public/images/1393.jpg +0 -0
  293. package/workspaces/0-skinny-mink-of-management/input/public/images/1394.jpg +0 -0
  294. package/workspaces/0-skinny-mink-of-management/input/public/images/1395.jpg +0 -0
  295. package/workspaces/0-skinny-mink-of-management/input/public/images/1396.jpg +0 -0
  296. package/workspaces/0-skinny-mink-of-management/input/public/images/1398.jpg +0 -0
  297. package/workspaces/0-skinny-mink-of-management/input/public/images/1399.jpg +0 -0
  298. package/workspaces/0-skinny-mink-of-management/input/public/images/14.jpg +0 -0
  299. package/workspaces/0-skinny-mink-of-management/input/public/images/140.jpg +0 -0
  300. package/workspaces/0-skinny-mink-of-management/input/public/images/1402.jpg +0 -0
  301. package/workspaces/0-skinny-mink-of-management/input/public/images/1403.jpg +0 -0
  302. package/workspaces/0-skinny-mink-of-management/input/public/images/1405.jpg +0 -0
  303. package/workspaces/0-skinny-mink-of-management/input/public/images/1408.jpg +0 -0
  304. package/workspaces/0-skinny-mink-of-management/input/public/images/1410.jpg +0 -0
  305. package/workspaces/0-skinny-mink-of-management/input/public/images/1411.jpg +0 -0
  306. package/workspaces/0-skinny-mink-of-management/input/public/images/1413.jpg +0 -0
  307. package/workspaces/0-skinny-mink-of-management/input/public/images/1414.jpg +0 -0
  308. package/workspaces/0-skinny-mink-of-management/input/public/images/1417.jpg +0 -0
  309. package/workspaces/0-skinny-mink-of-management/input/public/images/1419.jpg +0 -0
  310. package/workspaces/0-skinny-mink-of-management/input/public/images/142.jpg +0 -0
  311. package/workspaces/0-skinny-mink-of-management/input/public/images/1420.jpg +0 -0
  312. package/workspaces/0-skinny-mink-of-management/input/public/images/1423.jpg +0 -0
  313. package/workspaces/0-skinny-mink-of-management/input/public/images/1424.jpg +0 -0
  314. package/workspaces/0-skinny-mink-of-management/input/public/images/1425.jpg +0 -0
  315. package/workspaces/0-skinny-mink-of-management/input/public/images/143.jpg +0 -0
  316. package/workspaces/0-skinny-mink-of-management/input/public/images/1431.jpg +0 -0
  317. package/workspaces/0-skinny-mink-of-management/input/public/images/1432.jpg +0 -0
  318. package/workspaces/0-skinny-mink-of-management/input/public/images/1435.jpg +0 -0
  319. package/workspaces/0-skinny-mink-of-management/input/public/images/1436.jpg +0 -0
  320. package/workspaces/0-skinny-mink-of-management/input/public/images/1438.jpg +0 -0
  321. package/workspaces/0-skinny-mink-of-management/input/public/images/1440.jpg +0 -0
  322. package/workspaces/0-skinny-mink-of-management/input/public/images/1441.jpg +0 -0
  323. package/workspaces/0-skinny-mink-of-management/input/public/images/1442.jpg +0 -0
  324. package/workspaces/0-skinny-mink-of-management/input/public/images/1443.jpg +0 -0
  325. package/workspaces/0-skinny-mink-of-management/input/public/images/1444.jpg +0 -0
  326. package/workspaces/0-skinny-mink-of-management/input/public/images/1446.jpg +0 -0
  327. package/workspaces/0-skinny-mink-of-management/input/public/images/1448.jpg +0 -0
  328. package/workspaces/0-skinny-mink-of-management/input/public/images/1449.jpg +0 -0
  329. package/workspaces/0-skinny-mink-of-management/input/public/images/145.jpg +0 -0
  330. package/workspaces/0-skinny-mink-of-management/input/public/images/1450.jpg +0 -0
  331. package/workspaces/0-skinny-mink-of-management/input/public/images/1452.jpg +0 -0
  332. package/workspaces/0-skinny-mink-of-management/input/public/images/1454.jpg +0 -0
  333. package/workspaces/0-skinny-mink-of-management/input/public/images/1457.jpg +0 -0
  334. package/workspaces/0-skinny-mink-of-management/input/public/images/1459.jpg +0 -0
  335. package/workspaces/0-skinny-mink-of-management/input/public/images/146.jpg +0 -0
  336. package/workspaces/0-skinny-mink-of-management/input/public/images/1460.jpg +0 -0
  337. package/workspaces/0-skinny-mink-of-management/input/public/images/1461.jpg +0 -0
  338. package/workspaces/0-skinny-mink-of-management/input/public/images/1463.jpg +0 -0
  339. package/workspaces/0-skinny-mink-of-management/input/public/images/1467.jpg +0 -0
  340. package/workspaces/0-skinny-mink-of-management/input/public/images/1468.jpg +0 -0
  341. package/workspaces/0-skinny-mink-of-management/input/public/images/1469.jpg +0 -0
  342. package/workspaces/0-skinny-mink-of-management/input/public/images/1471.jpg +0 -0
  343. package/workspaces/0-skinny-mink-of-management/input/public/images/1472.jpg +0 -0
  344. package/workspaces/0-skinny-mink-of-management/input/public/images/1473.jpg +0 -0
  345. package/workspaces/0-skinny-mink-of-management/input/public/images/1474.jpg +0 -0
  346. package/workspaces/0-skinny-mink-of-management/input/public/images/1475.jpg +0 -0
  347. package/workspaces/0-skinny-mink-of-management/input/public/images/1476.jpg +0 -0
  348. package/workspaces/0-skinny-mink-of-management/input/public/images/1477.jpg +0 -0
  349. package/workspaces/0-skinny-mink-of-management/input/public/images/1479.jpg +0 -0
  350. package/workspaces/0-skinny-mink-of-management/input/public/images/148.jpg +0 -0
  351. package/workspaces/0-skinny-mink-of-management/input/public/images/1480.jpg +0 -0
  352. package/workspaces/0-skinny-mink-of-management/input/public/images/1482.jpg +0 -0
  353. package/workspaces/0-skinny-mink-of-management/input/public/images/1483.jpg +0 -0
  354. package/workspaces/0-skinny-mink-of-management/input/public/images/1488.jpg +0 -0
  355. package/workspaces/0-skinny-mink-of-management/input/public/images/149.jpg +0 -0
  356. package/workspaces/0-skinny-mink-of-management/input/public/images/1491.jpg +0 -0
  357. package/workspaces/0-skinny-mink-of-management/input/public/images/1492.jpg +0 -0
  358. package/workspaces/0-skinny-mink-of-management/input/public/images/1494.jpg +0 -0
  359. package/workspaces/0-skinny-mink-of-management/input/public/images/1496.jpg +0 -0
  360. package/workspaces/0-skinny-mink-of-management/input/public/images/1499.jpg +0 -0
  361. package/workspaces/0-skinny-mink-of-management/input/public/images/15.jpg +0 -0
  362. package/workspaces/0-skinny-mink-of-management/input/public/images/1500.jpg +0 -0
  363. package/workspaces/0-skinny-mink-of-management/input/public/images/1501.jpg +0 -0
  364. package/workspaces/0-skinny-mink-of-management/input/public/images/1502.jpg +0 -0
  365. package/workspaces/0-skinny-mink-of-management/input/public/images/1504.jpg +0 -0
  366. package/workspaces/0-skinny-mink-of-management/input/public/images/1505.jpg +0 -0
  367. package/workspaces/0-skinny-mink-of-management/input/public/images/1506.jpg +0 -0
  368. package/workspaces/0-skinny-mink-of-management/input/public/images/1507.jpg +0 -0
  369. package/workspaces/0-skinny-mink-of-management/input/public/images/1508.jpg +0 -0
  370. package/workspaces/0-skinny-mink-of-management/input/public/images/1509.jpg +0 -0
  371. package/workspaces/0-skinny-mink-of-management/input/public/images/1511.jpg +0 -0
  372. package/workspaces/0-skinny-mink-of-management/input/public/images/1512.jpg +0 -0
  373. package/workspaces/0-skinny-mink-of-management/input/public/images/1514.jpg +0 -0
  374. package/workspaces/0-skinny-mink-of-management/input/public/images/1515.jpg +0 -0
  375. package/workspaces/0-skinny-mink-of-management/input/public/images/1516.jpg +0 -0
  376. package/workspaces/0-skinny-mink-of-management/input/public/images/1518.jpg +0 -0
  377. package/workspaces/0-skinny-mink-of-management/input/public/images/1519.jpg +0 -0
  378. package/workspaces/0-skinny-mink-of-management/input/public/images/152.jpg +0 -0
  379. package/workspaces/0-skinny-mink-of-management/input/public/images/1520.jpg +0 -0
  380. package/workspaces/0-skinny-mink-of-management/input/public/images/1521.jpg +0 -0
  381. package/workspaces/0-skinny-mink-of-management/input/public/images/1523.jpg +0 -0
  382. package/workspaces/0-skinny-mink-of-management/input/public/images/1524.jpg +0 -0
  383. package/workspaces/0-skinny-mink-of-management/input/public/images/1525.jpg +0 -0
  384. package/workspaces/0-skinny-mink-of-management/input/public/images/1527.jpg +0 -0
  385. package/workspaces/0-skinny-mink-of-management/input/public/images/1529.jpg +0 -0
  386. package/workspaces/0-skinny-mink-of-management/input/public/images/153.jpg +0 -0
  387. package/workspaces/0-skinny-mink-of-management/input/public/images/1530.jpg +0 -0
  388. package/workspaces/0-skinny-mink-of-management/input/public/images/1531.jpg +0 -0
  389. package/workspaces/0-skinny-mink-of-management/input/public/images/1532.jpg +0 -0
  390. package/workspaces/0-skinny-mink-of-management/input/public/images/1536.jpg +0 -0
  391. package/workspaces/0-skinny-mink-of-management/input/public/images/1538.jpg +0 -0
  392. package/workspaces/0-skinny-mink-of-management/input/public/images/1539.jpg +0 -0
  393. package/workspaces/0-skinny-mink-of-management/input/public/images/1541.jpg +0 -0
  394. package/workspaces/0-skinny-mink-of-management/input/public/images/1543.jpg +0 -0
  395. package/workspaces/0-skinny-mink-of-management/input/public/images/1544.jpg +0 -0
  396. package/workspaces/0-skinny-mink-of-management/input/public/images/1545.jpg +0 -0
  397. package/workspaces/0-skinny-mink-of-management/input/public/images/1547.jpg +0 -0
  398. package/workspaces/0-skinny-mink-of-management/input/public/images/1548.jpg +0 -0
  399. package/workspaces/0-skinny-mink-of-management/input/public/images/1549.jpg +0 -0
  400. package/workspaces/0-skinny-mink-of-management/input/public/images/155.jpg +0 -0
  401. package/workspaces/0-skinny-mink-of-management/input/public/images/1550.jpg +0 -0
  402. package/workspaces/0-skinny-mink-of-management/input/public/images/1551.jpg +0 -0
  403. package/workspaces/0-skinny-mink-of-management/input/public/images/1552.jpg +0 -0
  404. package/workspaces/0-skinny-mink-of-management/input/public/images/1554.jpg +0 -0
  405. package/workspaces/0-skinny-mink-of-management/input/public/images/1555.jpg +0 -0
  406. package/workspaces/0-skinny-mink-of-management/input/public/images/1556.jpg +0 -0
  407. package/workspaces/0-skinny-mink-of-management/input/public/images/1557.jpg +0 -0
  408. package/workspaces/0-skinny-mink-of-management/input/public/images/1559.jpg +0 -0
  409. package/workspaces/0-skinny-mink-of-management/input/public/images/1561.jpg +0 -0
  410. package/workspaces/0-skinny-mink-of-management/input/public/images/1562.jpg +0 -0
  411. package/workspaces/0-skinny-mink-of-management/input/public/images/1563.jpg +0 -0
  412. package/workspaces/0-skinny-mink-of-management/input/public/images/1566.jpg +0 -0
  413. package/workspaces/0-skinny-mink-of-management/input/public/images/1568.jpg +0 -0
  414. package/workspaces/0-skinny-mink-of-management/input/public/images/1569.jpg +0 -0
  415. package/workspaces/0-skinny-mink-of-management/input/public/images/1570.jpg +0 -0
  416. package/workspaces/0-skinny-mink-of-management/input/public/images/1571.jpg +0 -0
  417. package/workspaces/0-skinny-mink-of-management/input/public/images/1572.jpg +0 -0
  418. package/workspaces/0-skinny-mink-of-management/input/public/images/1574.jpg +0 -0
  419. package/workspaces/0-skinny-mink-of-management/input/public/images/1575.jpg +0 -0
  420. package/workspaces/0-skinny-mink-of-management/input/public/images/1578.jpg +0 -0
  421. package/workspaces/0-skinny-mink-of-management/input/public/images/1581.jpg +0 -0
  422. package/workspaces/0-skinny-mink-of-management/input/public/images/1582.jpg +0 -0
  423. package/workspaces/0-skinny-mink-of-management/input/public/images/1584.jpg +0 -0
  424. package/workspaces/0-skinny-mink-of-management/input/public/images/160.jpg +0 -0
  425. package/workspaces/0-skinny-mink-of-management/input/public/images/163.jpg +0 -0
  426. package/workspaces/0-skinny-mink-of-management/input/public/images/164.jpg +0 -0
  427. package/workspaces/0-skinny-mink-of-management/input/public/images/165.jpg +0 -0
  428. package/workspaces/0-skinny-mink-of-management/input/public/images/166.jpg +0 -0
  429. package/workspaces/0-skinny-mink-of-management/input/public/images/167.jpg +0 -0
  430. package/workspaces/0-skinny-mink-of-management/input/public/images/168.jpg +0 -0
  431. package/workspaces/0-skinny-mink-of-management/input/public/images/169.jpg +0 -0
  432. package/workspaces/0-skinny-mink-of-management/input/public/images/17.jpg +0 -0
  433. package/workspaces/0-skinny-mink-of-management/input/public/images/171.jpg +0 -0
  434. package/workspaces/0-skinny-mink-of-management/input/public/images/173.jpg +0 -0
  435. package/workspaces/0-skinny-mink-of-management/input/public/images/175.jpg +0 -0
  436. package/workspaces/0-skinny-mink-of-management/input/public/images/178.jpg +0 -0
  437. package/workspaces/0-skinny-mink-of-management/input/public/images/179.jpg +0 -0
  438. package/workspaces/0-skinny-mink-of-management/input/public/images/18.jpg +0 -0
  439. package/workspaces/0-skinny-mink-of-management/input/public/images/183.jpg +0 -0
  440. package/workspaces/0-skinny-mink-of-management/input/public/images/186.jpg +0 -0
  441. package/workspaces/0-skinny-mink-of-management/input/public/images/188.jpg +0 -0
  442. package/workspaces/0-skinny-mink-of-management/input/public/images/189.jpg +0 -0
  443. package/workspaces/0-skinny-mink-of-management/input/public/images/190.jpg +0 -0
  444. package/workspaces/0-skinny-mink-of-management/input/public/images/194.jpg +0 -0
  445. package/workspaces/0-skinny-mink-of-management/input/public/images/196.jpg +0 -0
  446. package/workspaces/0-skinny-mink-of-management/input/public/images/198.jpg +0 -0
  447. package/workspaces/0-skinny-mink-of-management/input/public/images/199.jpg +0 -0
  448. package/workspaces/0-skinny-mink-of-management/input/public/images/2.jpg +0 -0
  449. package/workspaces/0-skinny-mink-of-management/input/public/images/20.jpg +0 -0
  450. package/workspaces/0-skinny-mink-of-management/input/public/images/201.jpg +0 -0
  451. package/workspaces/0-skinny-mink-of-management/input/public/images/202.jpg +0 -0
  452. package/workspaces/0-skinny-mink-of-management/input/public/images/203.jpg +0 -0
  453. package/workspaces/0-skinny-mink-of-management/input/public/images/204.jpg +0 -0
  454. package/workspaces/0-skinny-mink-of-management/input/public/images/206.jpg +0 -0
  455. package/workspaces/0-skinny-mink-of-management/input/public/images/21.jpg +0 -0
  456. package/workspaces/0-skinny-mink-of-management/input/public/images/211.jpg +0 -0
  457. package/workspaces/0-skinny-mink-of-management/input/public/images/212.jpg +0 -0
  458. package/workspaces/0-skinny-mink-of-management/input/public/images/214.jpg +0 -0
  459. package/workspaces/0-skinny-mink-of-management/input/public/images/215.jpg +0 -0
  460. package/workspaces/0-skinny-mink-of-management/input/public/images/216.jpg +0 -0
  461. package/workspaces/0-skinny-mink-of-management/input/public/images/217.jpg +0 -0
  462. package/workspaces/0-skinny-mink-of-management/input/public/images/218.jpg +0 -0
  463. package/workspaces/0-skinny-mink-of-management/input/public/images/219.jpg +0 -0
  464. package/workspaces/0-skinny-mink-of-management/input/public/images/22.jpg +0 -0
  465. package/workspaces/0-skinny-mink-of-management/input/public/images/224.jpg +0 -0
  466. package/workspaces/0-skinny-mink-of-management/input/public/images/225.jpg +0 -0
  467. package/workspaces/0-skinny-mink-of-management/input/public/images/227.jpg +0 -0
  468. package/workspaces/0-skinny-mink-of-management/input/public/images/228.jpg +0 -0
  469. package/workspaces/0-skinny-mink-of-management/input/public/images/231.jpg +0 -0
  470. package/workspaces/0-skinny-mink-of-management/input/public/images/233.jpg +0 -0
  471. package/workspaces/0-skinny-mink-of-management/input/public/images/235.jpg +0 -0
  472. package/workspaces/0-skinny-mink-of-management/input/public/images/237.jpg +0 -0
  473. package/workspaces/0-skinny-mink-of-management/input/public/images/238.jpg +0 -0
  474. package/workspaces/0-skinny-mink-of-management/input/public/images/239.jpg +0 -0
  475. package/workspaces/0-skinny-mink-of-management/input/public/images/240.jpg +0 -0
  476. package/workspaces/0-skinny-mink-of-management/input/public/images/241.jpg +0 -0
  477. package/workspaces/0-skinny-mink-of-management/input/public/images/242.jpg +0 -0
  478. package/workspaces/0-skinny-mink-of-management/input/public/images/243.jpg +0 -0
  479. package/workspaces/0-skinny-mink-of-management/input/public/images/245.jpg +0 -0
  480. package/workspaces/0-skinny-mink-of-management/input/public/images/246.jpg +0 -0
  481. package/workspaces/0-skinny-mink-of-management/input/public/images/247.jpg +0 -0
  482. package/workspaces/0-skinny-mink-of-management/input/public/images/248.jpg +0 -0
  483. package/workspaces/0-skinny-mink-of-management/input/public/images/249.jpg +0 -0
  484. package/workspaces/0-skinny-mink-of-management/input/public/images/25.jpg +0 -0
  485. package/workspaces/0-skinny-mink-of-management/input/public/images/252.jpg +0 -0
  486. package/workspaces/0-skinny-mink-of-management/input/public/images/253.jpg +0 -0
  487. package/workspaces/0-skinny-mink-of-management/input/public/images/256.jpg +0 -0
  488. package/workspaces/0-skinny-mink-of-management/input/public/images/257.jpg +0 -0
  489. package/workspaces/0-skinny-mink-of-management/input/public/images/258.jpg +0 -0
  490. package/workspaces/0-skinny-mink-of-management/input/public/images/259.jpg +0 -0
  491. package/workspaces/0-skinny-mink-of-management/input/public/images/26.jpg +0 -0
  492. package/workspaces/0-skinny-mink-of-management/input/public/images/260.jpg +0 -0
  493. package/workspaces/0-skinny-mink-of-management/input/public/images/262.jpg +0 -0
  494. package/workspaces/0-skinny-mink-of-management/input/public/images/263.jpg +0 -0
  495. package/workspaces/0-skinny-mink-of-management/input/public/images/265.jpg +0 -0
  496. package/workspaces/0-skinny-mink-of-management/input/public/images/267.jpg +0 -0
  497. package/workspaces/0-skinny-mink-of-management/input/public/images/268.jpg +0 -0
  498. package/workspaces/0-skinny-mink-of-management/input/public/images/269.jpg +0 -0
  499. package/workspaces/0-skinny-mink-of-management/input/public/images/27.jpg +0 -0
  500. package/workspaces/0-skinny-mink-of-management/input/public/images/270.jpg +0 -0
  501. package/workspaces/0-skinny-mink-of-management/input/public/images/273.jpg +0 -0
  502. package/workspaces/0-skinny-mink-of-management/input/public/images/275.jpg +0 -0
  503. package/workspaces/0-skinny-mink-of-management/input/public/images/278.jpg +0 -0
  504. package/workspaces/0-skinny-mink-of-management/input/public/images/280.jpg +0 -0
  505. package/workspaces/0-skinny-mink-of-management/input/public/images/282.jpg +0 -0
  506. package/workspaces/0-skinny-mink-of-management/input/public/images/283.jpg +0 -0
  507. package/workspaces/0-skinny-mink-of-management/input/public/images/286.jpg +0 -0
  508. package/workspaces/0-skinny-mink-of-management/input/public/images/288.jpg +0 -0
  509. package/workspaces/0-skinny-mink-of-management/input/public/images/289.jpg +0 -0
  510. package/workspaces/0-skinny-mink-of-management/input/public/images/29.jpg +0 -0
  511. package/workspaces/0-skinny-mink-of-management/input/public/images/290.jpg +0 -0
  512. package/workspaces/0-skinny-mink-of-management/input/public/images/291.jpg +0 -0
  513. package/workspaces/0-skinny-mink-of-management/input/public/images/294.jpg +0 -0
  514. package/workspaces/0-skinny-mink-of-management/input/public/images/298.jpg +0 -0
  515. package/workspaces/0-skinny-mink-of-management/input/public/images/3.jpg +0 -0
  516. package/workspaces/0-skinny-mink-of-management/input/public/images/30.jpg +0 -0
  517. package/workspaces/0-skinny-mink-of-management/input/public/images/302.jpg +0 -0
  518. package/workspaces/0-skinny-mink-of-management/input/public/images/303.jpg +0 -0
  519. package/workspaces/0-skinny-mink-of-management/input/public/images/304.jpg +0 -0
  520. package/workspaces/0-skinny-mink-of-management/input/public/images/306.jpg +0 -0
  521. package/workspaces/0-skinny-mink-of-management/input/public/images/307.jpg +0 -0
  522. package/workspaces/0-skinny-mink-of-management/input/public/images/309.jpg +0 -0
  523. package/workspaces/0-skinny-mink-of-management/input/public/images/31.jpg +0 -0
  524. package/workspaces/0-skinny-mink-of-management/input/public/images/310.jpg +0 -0
  525. package/workspaces/0-skinny-mink-of-management/input/public/images/311.jpg +0 -0
  526. package/workspaces/0-skinny-mink-of-management/input/public/images/314.jpg +0 -0
  527. package/workspaces/0-skinny-mink-of-management/input/public/images/315.jpg +0 -0
  528. package/workspaces/0-skinny-mink-of-management/input/public/images/317.jpg +0 -0
  529. package/workspaces/0-skinny-mink-of-management/input/public/images/319.jpg +0 -0
  530. package/workspaces/0-skinny-mink-of-management/input/public/images/32.jpg +0 -0
  531. package/workspaces/0-skinny-mink-of-management/input/public/images/321.jpg +0 -0
  532. package/workspaces/0-skinny-mink-of-management/input/public/images/322.jpg +0 -0
  533. package/workspaces/0-skinny-mink-of-management/input/public/images/323.jpg +0 -0
  534. package/workspaces/0-skinny-mink-of-management/input/public/images/324.jpg +0 -0
  535. package/workspaces/0-skinny-mink-of-management/input/public/images/325.jpg +0 -0
  536. package/workspaces/0-skinny-mink-of-management/input/public/images/326.jpg +0 -0
  537. package/workspaces/0-skinny-mink-of-management/input/public/images/327.jpg +0 -0
  538. package/workspaces/0-skinny-mink-of-management/input/public/images/328.jpg +0 -0
  539. package/workspaces/0-skinny-mink-of-management/input/public/images/329.jpg +0 -0
  540. package/workspaces/0-skinny-mink-of-management/input/public/images/330.jpg +0 -0
  541. package/workspaces/0-skinny-mink-of-management/input/public/images/331.jpg +0 -0
  542. package/workspaces/0-skinny-mink-of-management/input/public/images/333.jpg +0 -0
  543. package/workspaces/0-skinny-mink-of-management/input/public/images/334.jpg +0 -0
  544. package/workspaces/0-skinny-mink-of-management/input/public/images/335.jpg +0 -0
  545. package/workspaces/0-skinny-mink-of-management/input/public/images/336.jpg +0 -0
  546. package/workspaces/0-skinny-mink-of-management/input/public/images/338.jpg +0 -0
  547. package/workspaces/0-skinny-mink-of-management/input/public/images/339.jpg +0 -0
  548. package/workspaces/0-skinny-mink-of-management/input/public/images/34.jpg +0 -0
  549. package/workspaces/0-skinny-mink-of-management/input/public/images/340.jpg +0 -0
  550. package/workspaces/0-skinny-mink-of-management/input/public/images/341.jpg +0 -0
  551. package/workspaces/0-skinny-mink-of-management/input/public/images/342.jpg +0 -0
  552. package/workspaces/0-skinny-mink-of-management/input/public/images/344.jpg +0 -0
  553. package/workspaces/0-skinny-mink-of-management/input/public/images/345.jpg +0 -0
  554. package/workspaces/0-skinny-mink-of-management/input/public/images/348.jpg +0 -0
  555. package/workspaces/0-skinny-mink-of-management/input/public/images/349.jpg +0 -0
  556. package/workspaces/0-skinny-mink-of-management/input/public/images/35.jpg +0 -0
  557. package/workspaces/0-skinny-mink-of-management/input/public/images/350.jpg +0 -0
  558. package/workspaces/0-skinny-mink-of-management/input/public/images/354.jpg +0 -0
  559. package/workspaces/0-skinny-mink-of-management/input/public/images/355.jpg +0 -0
  560. package/workspaces/0-skinny-mink-of-management/input/public/images/356.jpg +0 -0
  561. package/workspaces/0-skinny-mink-of-management/input/public/images/357.jpg +0 -0
  562. package/workspaces/0-skinny-mink-of-management/input/public/images/358.jpg +0 -0
  563. package/workspaces/0-skinny-mink-of-management/input/public/images/360.jpg +0 -0
  564. package/workspaces/0-skinny-mink-of-management/input/public/images/362.jpg +0 -0
  565. package/workspaces/0-skinny-mink-of-management/input/public/images/363.jpg +0 -0
  566. package/workspaces/0-skinny-mink-of-management/input/public/images/364.jpg +0 -0
  567. package/workspaces/0-skinny-mink-of-management/input/public/images/365.jpg +0 -0
  568. package/workspaces/0-skinny-mink-of-management/input/public/images/366.jpg +0 -0
  569. package/workspaces/0-skinny-mink-of-management/input/public/images/367.jpg +0 -0
  570. package/workspaces/0-skinny-mink-of-management/input/public/images/369.jpg +0 -0
  571. package/workspaces/0-skinny-mink-of-management/input/public/images/37.jpg +0 -0
  572. package/workspaces/0-skinny-mink-of-management/input/public/images/371.jpg +0 -0
  573. package/workspaces/0-skinny-mink-of-management/input/public/images/374.jpg +0 -0
  574. package/workspaces/0-skinny-mink-of-management/input/public/images/375.jpg +0 -0
  575. package/workspaces/0-skinny-mink-of-management/input/public/images/376.jpg +0 -0
  576. package/workspaces/0-skinny-mink-of-management/input/public/images/377.jpg +0 -0
  577. package/workspaces/0-skinny-mink-of-management/input/public/images/379.jpg +0 -0
  578. package/workspaces/0-skinny-mink-of-management/input/public/images/38.jpg +0 -0
  579. package/workspaces/0-skinny-mink-of-management/input/public/images/380.jpg +0 -0
  580. package/workspaces/0-skinny-mink-of-management/input/public/images/382.jpg +0 -0
  581. package/workspaces/0-skinny-mink-of-management/input/public/images/383.jpg +0 -0
  582. package/workspaces/0-skinny-mink-of-management/input/public/images/386.jpg +0 -0
  583. package/workspaces/0-skinny-mink-of-management/input/public/images/387.jpg +0 -0
  584. package/workspaces/0-skinny-mink-of-management/input/public/images/388.jpg +0 -0
  585. package/workspaces/0-skinny-mink-of-management/input/public/images/389.jpg +0 -0
  586. package/workspaces/0-skinny-mink-of-management/input/public/images/390.jpg +0 -0
  587. package/workspaces/0-skinny-mink-of-management/input/public/images/392.jpg +0 -0
  588. package/workspaces/0-skinny-mink-of-management/input/public/images/393.jpg +0 -0
  589. package/workspaces/0-skinny-mink-of-management/input/public/images/394.jpg +0 -0
  590. package/workspaces/0-skinny-mink-of-management/input/public/images/396.jpg +0 -0
  591. package/workspaces/0-skinny-mink-of-management/input/public/images/397.jpg +0 -0
  592. package/workspaces/0-skinny-mink-of-management/input/public/images/398.jpg +0 -0
  593. package/workspaces/0-skinny-mink-of-management/input/public/images/40.jpg +0 -0
  594. package/workspaces/0-skinny-mink-of-management/input/public/images/404.jpg +0 -0
  595. package/workspaces/0-skinny-mink-of-management/input/public/images/408.jpg +0 -0
  596. package/workspaces/0-skinny-mink-of-management/input/public/images/409.jpg +0 -0
  597. package/workspaces/0-skinny-mink-of-management/input/public/images/410.jpg +0 -0
  598. package/workspaces/0-skinny-mink-of-management/input/public/images/411.jpg +0 -0
  599. package/workspaces/0-skinny-mink-of-management/input/public/images/412.jpg +0 -0
  600. package/workspaces/0-skinny-mink-of-management/input/public/images/413.jpg +0 -0
  601. package/workspaces/0-skinny-mink-of-management/input/public/images/415.jpg +0 -0
  602. package/workspaces/0-skinny-mink-of-management/input/public/images/416.jpg +0 -0
  603. package/workspaces/0-skinny-mink-of-management/input/public/images/417.jpg +0 -0
  604. package/workspaces/0-skinny-mink-of-management/input/public/images/418.jpg +0 -0
  605. package/workspaces/0-skinny-mink-of-management/input/public/images/419.jpg +0 -0
  606. package/workspaces/0-skinny-mink-of-management/input/public/images/42.jpg +0 -0
  607. package/workspaces/0-skinny-mink-of-management/input/public/images/420.jpg +0 -0
  608. package/workspaces/0-skinny-mink-of-management/input/public/images/423.jpg +0 -0
  609. package/workspaces/0-skinny-mink-of-management/input/public/images/425.jpg +0 -0
  610. package/workspaces/0-skinny-mink-of-management/input/public/images/426.jpg +0 -0
  611. package/workspaces/0-skinny-mink-of-management/input/public/images/427.jpg +0 -0
  612. package/workspaces/0-skinny-mink-of-management/input/public/images/428.jpg +0 -0
  613. package/workspaces/0-skinny-mink-of-management/input/public/images/43.jpg +0 -0
  614. package/workspaces/0-skinny-mink-of-management/input/public/images/430.jpg +0 -0
  615. package/workspaces/0-skinny-mink-of-management/input/public/images/431.jpg +0 -0
  616. package/workspaces/0-skinny-mink-of-management/input/public/images/433.jpg +0 -0
  617. package/workspaces/0-skinny-mink-of-management/input/public/images/435.jpg +0 -0
  618. package/workspaces/0-skinny-mink-of-management/input/public/images/436.jpg +0 -0
  619. package/workspaces/0-skinny-mink-of-management/input/public/images/437.jpg +0 -0
  620. package/workspaces/0-skinny-mink-of-management/input/public/images/438.jpg +0 -0
  621. package/workspaces/0-skinny-mink-of-management/input/public/images/440.jpg +0 -0
  622. package/workspaces/0-skinny-mink-of-management/input/public/images/443.jpg +0 -0
  623. package/workspaces/0-skinny-mink-of-management/input/public/images/444.jpg +0 -0
  624. package/workspaces/0-skinny-mink-of-management/input/public/images/445.jpg +0 -0
  625. package/workspaces/0-skinny-mink-of-management/input/public/images/446.jpg +0 -0
  626. package/workspaces/0-skinny-mink-of-management/input/public/images/449.jpg +0 -0
  627. package/workspaces/0-skinny-mink-of-management/input/public/images/45.jpg +0 -0
  628. package/workspaces/0-skinny-mink-of-management/input/public/images/450.jpg +0 -0
  629. package/workspaces/0-skinny-mink-of-management/input/public/images/451.jpg +0 -0
  630. package/workspaces/0-skinny-mink-of-management/input/public/images/452.jpg +0 -0
  631. package/workspaces/0-skinny-mink-of-management/input/public/images/454.jpg +0 -0
  632. package/workspaces/0-skinny-mink-of-management/input/public/images/455.jpg +0 -0
  633. package/workspaces/0-skinny-mink-of-management/input/public/images/456.jpg +0 -0
  634. package/workspaces/0-skinny-mink-of-management/input/public/images/458.jpg +0 -0
  635. package/workspaces/0-skinny-mink-of-management/input/public/images/459.jpg +0 -0
  636. package/workspaces/0-skinny-mink-of-management/input/public/images/460.jpg +0 -0
  637. package/workspaces/0-skinny-mink-of-management/input/public/images/461.jpg +0 -0
  638. package/workspaces/0-skinny-mink-of-management/input/public/images/462.jpg +0 -0
  639. package/workspaces/0-skinny-mink-of-management/input/public/images/463.jpg +0 -0
  640. package/workspaces/0-skinny-mink-of-management/input/public/images/464.jpg +0 -0
  641. package/workspaces/0-skinny-mink-of-management/input/public/images/466.jpg +0 -0
  642. package/workspaces/0-skinny-mink-of-management/input/public/images/467.jpg +0 -0
  643. package/workspaces/0-skinny-mink-of-management/input/public/images/468.jpg +0 -0
  644. package/workspaces/0-skinny-mink-of-management/input/public/images/469.jpg +0 -0
  645. package/workspaces/0-skinny-mink-of-management/input/public/images/470.jpg +0 -0
  646. package/workspaces/0-skinny-mink-of-management/input/public/images/475.jpg +0 -0
  647. package/workspaces/0-skinny-mink-of-management/input/public/images/478.jpg +0 -0
  648. package/workspaces/0-skinny-mink-of-management/input/public/images/48.jpg +0 -0
  649. package/workspaces/0-skinny-mink-of-management/input/public/images/481.jpg +0 -0
  650. package/workspaces/0-skinny-mink-of-management/input/public/images/482.jpg +0 -0
  651. package/workspaces/0-skinny-mink-of-management/input/public/images/485.jpg +0 -0
  652. package/workspaces/0-skinny-mink-of-management/input/public/images/487.jpg +0 -0
  653. package/workspaces/0-skinny-mink-of-management/input/public/images/488.jpg +0 -0
  654. package/workspaces/0-skinny-mink-of-management/input/public/images/489.jpg +0 -0
  655. package/workspaces/0-skinny-mink-of-management/input/public/images/49.jpg +0 -0
  656. package/workspaces/0-skinny-mink-of-management/input/public/images/490.jpg +0 -0
  657. package/workspaces/0-skinny-mink-of-management/input/public/images/491.jpg +0 -0
  658. package/workspaces/0-skinny-mink-of-management/input/public/images/492.jpg +0 -0
  659. package/workspaces/0-skinny-mink-of-management/input/public/images/493.jpg +0 -0
  660. package/workspaces/0-skinny-mink-of-management/input/public/images/494.jpg +0 -0
  661. package/workspaces/0-skinny-mink-of-management/input/public/images/496.jpg +0 -0
  662. package/workspaces/0-skinny-mink-of-management/input/public/images/497.jpg +0 -0
  663. package/workspaces/0-skinny-mink-of-management/input/public/images/498.jpg +0 -0
  664. package/workspaces/0-skinny-mink-of-management/input/public/images/499.jpg +0 -0
  665. package/workspaces/0-skinny-mink-of-management/input/public/images/5.jpg +0 -0
  666. package/workspaces/0-skinny-mink-of-management/input/public/images/50.jpg +0 -0
  667. package/workspaces/0-skinny-mink-of-management/input/public/images/501.jpg +0 -0
  668. package/workspaces/0-skinny-mink-of-management/input/public/images/502.jpg +0 -0
  669. package/workspaces/0-skinny-mink-of-management/input/public/images/505.jpg +0 -0
  670. package/workspaces/0-skinny-mink-of-management/input/public/images/506.jpg +0 -0
  671. package/workspaces/0-skinny-mink-of-management/input/public/images/508.jpg +0 -0
  672. package/workspaces/0-skinny-mink-of-management/input/public/images/510.jpg +0 -0
  673. package/workspaces/0-skinny-mink-of-management/input/public/images/511.jpg +0 -0
  674. package/workspaces/0-skinny-mink-of-management/input/public/images/513.jpg +0 -0
  675. package/workspaces/0-skinny-mink-of-management/input/public/images/514.jpg +0 -0
  676. package/workspaces/0-skinny-mink-of-management/input/public/images/516.jpg +0 -0
  677. package/workspaces/0-skinny-mink-of-management/input/public/images/517.jpg +0 -0
  678. package/workspaces/0-skinny-mink-of-management/input/public/images/519.jpg +0 -0
  679. package/workspaces/0-skinny-mink-of-management/input/public/images/520.jpg +0 -0
  680. package/workspaces/0-skinny-mink-of-management/input/public/images/521.jpg +0 -0
  681. package/workspaces/0-skinny-mink-of-management/input/public/images/522.jpg +0 -0
  682. package/workspaces/0-skinny-mink-of-management/input/public/images/523.jpg +0 -0
  683. package/workspaces/0-skinny-mink-of-management/input/public/images/524.jpg +0 -0
  684. package/workspaces/0-skinny-mink-of-management/input/public/images/528.jpg +0 -0
  685. package/workspaces/0-skinny-mink-of-management/input/public/images/530.jpg +0 -0
  686. package/workspaces/0-skinny-mink-of-management/input/public/images/532.jpg +0 -0
  687. package/workspaces/0-skinny-mink-of-management/input/public/images/535.jpg +0 -0
  688. package/workspaces/0-skinny-mink-of-management/input/public/images/538.jpg +0 -0
  689. package/workspaces/0-skinny-mink-of-management/input/public/images/539.jpg +0 -0
  690. package/workspaces/0-skinny-mink-of-management/input/public/images/54.jpg +0 -0
  691. package/workspaces/0-skinny-mink-of-management/input/public/images/542.jpg +0 -0
  692. package/workspaces/0-skinny-mink-of-management/input/public/images/543.jpg +0 -0
  693. package/workspaces/0-skinny-mink-of-management/input/public/images/545.jpg +0 -0
  694. package/workspaces/0-skinny-mink-of-management/input/public/images/547.jpg +0 -0
  695. package/workspaces/0-skinny-mink-of-management/input/public/images/548.jpg +0 -0
  696. package/workspaces/0-skinny-mink-of-management/input/public/images/55.jpg +0 -0
  697. package/workspaces/0-skinny-mink-of-management/input/public/images/550.jpg +0 -0
  698. package/workspaces/0-skinny-mink-of-management/input/public/images/551.jpg +0 -0
  699. package/workspaces/0-skinny-mink-of-management/input/public/images/552.jpg +0 -0
  700. package/workspaces/0-skinny-mink-of-management/input/public/images/553.jpg +0 -0
  701. package/workspaces/0-skinny-mink-of-management/input/public/images/556.jpg +0 -0
  702. package/workspaces/0-skinny-mink-of-management/input/public/images/558.jpg +0 -0
  703. package/workspaces/0-skinny-mink-of-management/input/public/images/559.jpg +0 -0
  704. package/workspaces/0-skinny-mink-of-management/input/public/images/56.jpg +0 -0
  705. package/workspaces/0-skinny-mink-of-management/input/public/images/561.jpg +0 -0
  706. package/workspaces/0-skinny-mink-of-management/input/public/images/562.jpg +0 -0
  707. package/workspaces/0-skinny-mink-of-management/input/public/images/563.jpg +0 -0
  708. package/workspaces/0-skinny-mink-of-management/input/public/images/564.jpg +0 -0
  709. package/workspaces/0-skinny-mink-of-management/input/public/images/566.jpg +0 -0
  710. package/workspaces/0-skinny-mink-of-management/input/public/images/568.jpg +0 -0
  711. package/workspaces/0-skinny-mink-of-management/input/public/images/569.jpg +0 -0
  712. package/workspaces/0-skinny-mink-of-management/input/public/images/570.jpg +0 -0
  713. package/workspaces/0-skinny-mink-of-management/input/public/images/571.jpg +0 -0
  714. package/workspaces/0-skinny-mink-of-management/input/public/images/572.jpg +0 -0
  715. package/workspaces/0-skinny-mink-of-management/input/public/images/573.jpg +0 -0
  716. package/workspaces/0-skinny-mink-of-management/input/public/images/576.jpg +0 -0
  717. package/workspaces/0-skinny-mink-of-management/input/public/images/58.jpg +0 -0
  718. package/workspaces/0-skinny-mink-of-management/input/public/images/581.jpg +0 -0
  719. package/workspaces/0-skinny-mink-of-management/input/public/images/582.jpg +0 -0
  720. package/workspaces/0-skinny-mink-of-management/input/public/images/585.jpg +0 -0
  721. package/workspaces/0-skinny-mink-of-management/input/public/images/588.jpg +0 -0
  722. package/workspaces/0-skinny-mink-of-management/input/public/images/589.jpg +0 -0
  723. package/workspaces/0-skinny-mink-of-management/input/public/images/592.jpg +0 -0
  724. package/workspaces/0-skinny-mink-of-management/input/public/images/593.jpg +0 -0
  725. package/workspaces/0-skinny-mink-of-management/input/public/images/595.jpg +0 -0
  726. package/workspaces/0-skinny-mink-of-management/input/public/images/596.jpg +0 -0
  727. package/workspaces/0-skinny-mink-of-management/input/public/images/597.jpg +0 -0
  728. package/workspaces/0-skinny-mink-of-management/input/public/images/598.jpg +0 -0
  729. package/workspaces/0-skinny-mink-of-management/input/public/images/6.jpg +0 -0
  730. package/workspaces/0-skinny-mink-of-management/input/public/images/60.jpg +0 -0
  731. package/workspaces/0-skinny-mink-of-management/input/public/images/600.jpg +0 -0
  732. package/workspaces/0-skinny-mink-of-management/input/public/images/601.jpg +0 -0
  733. package/workspaces/0-skinny-mink-of-management/input/public/images/603.jpg +0 -0
  734. package/workspaces/0-skinny-mink-of-management/input/public/images/605.jpg +0 -0
  735. package/workspaces/0-skinny-mink-of-management/input/public/images/606.jpg +0 -0
  736. package/workspaces/0-skinny-mink-of-management/input/public/images/609.jpg +0 -0
  737. package/workspaces/0-skinny-mink-of-management/input/public/images/61.jpg +0 -0
  738. package/workspaces/0-skinny-mink-of-management/input/public/images/610.jpg +0 -0
  739. package/workspaces/0-skinny-mink-of-management/input/public/images/614.jpg +0 -0
  740. package/workspaces/0-skinny-mink-of-management/input/public/images/615.jpg +0 -0
  741. package/workspaces/0-skinny-mink-of-management/input/public/images/616.jpg +0 -0
  742. package/workspaces/0-skinny-mink-of-management/input/public/images/618.jpg +0 -0
  743. package/workspaces/0-skinny-mink-of-management/input/public/images/619.jpg +0 -0
  744. package/workspaces/0-skinny-mink-of-management/input/public/images/620.jpg +0 -0
  745. package/workspaces/0-skinny-mink-of-management/input/public/images/621.jpg +0 -0
  746. package/workspaces/0-skinny-mink-of-management/input/public/images/622.jpg +0 -0
  747. package/workspaces/0-skinny-mink-of-management/input/public/images/623.jpg +0 -0
  748. package/workspaces/0-skinny-mink-of-management/input/public/images/628.jpg +0 -0
  749. package/workspaces/0-skinny-mink-of-management/input/public/images/629.jpg +0 -0
  750. package/workspaces/0-skinny-mink-of-management/input/public/images/63.jpg +0 -0
  751. package/workspaces/0-skinny-mink-of-management/input/public/images/630.jpg +0 -0
  752. package/workspaces/0-skinny-mink-of-management/input/public/images/631.jpg +0 -0
  753. package/workspaces/0-skinny-mink-of-management/input/public/images/632.jpg +0 -0
  754. package/workspaces/0-skinny-mink-of-management/input/public/images/633.jpg +0 -0
  755. package/workspaces/0-skinny-mink-of-management/input/public/images/634.jpg +0 -0
  756. package/workspaces/0-skinny-mink-of-management/input/public/images/635.jpg +0 -0
  757. package/workspaces/0-skinny-mink-of-management/input/public/images/636.jpg +0 -0
  758. package/workspaces/0-skinny-mink-of-management/input/public/images/637.jpg +0 -0
  759. package/workspaces/0-skinny-mink-of-management/input/public/images/64.jpg +0 -0
  760. package/workspaces/0-skinny-mink-of-management/input/public/images/641.jpg +0 -0
  761. package/workspaces/0-skinny-mink-of-management/input/public/images/642.jpg +0 -0
  762. package/workspaces/0-skinny-mink-of-management/input/public/images/645.jpg +0 -0
  763. package/workspaces/0-skinny-mink-of-management/input/public/images/646.jpg +0 -0
  764. package/workspaces/0-skinny-mink-of-management/input/public/images/647.jpg +0 -0
  765. package/workspaces/0-skinny-mink-of-management/input/public/images/649.jpg +0 -0
  766. package/workspaces/0-skinny-mink-of-management/input/public/images/651.jpg +0 -0
  767. package/workspaces/0-skinny-mink-of-management/input/public/images/652.jpg +0 -0
  768. package/workspaces/0-skinny-mink-of-management/input/public/images/654.jpg +0 -0
  769. package/workspaces/0-skinny-mink-of-management/input/public/images/656.jpg +0 -0
  770. package/workspaces/0-skinny-mink-of-management/input/public/images/657.jpg +0 -0
  771. package/workspaces/0-skinny-mink-of-management/input/public/images/66.jpg +0 -0
  772. package/workspaces/0-skinny-mink-of-management/input/public/images/660.jpg +0 -0
  773. package/workspaces/0-skinny-mink-of-management/input/public/images/661.jpg +0 -0
  774. package/workspaces/0-skinny-mink-of-management/input/public/images/662.jpg +0 -0
  775. package/workspaces/0-skinny-mink-of-management/input/public/images/663.jpg +0 -0
  776. package/workspaces/0-skinny-mink-of-management/input/public/images/664.jpg +0 -0
  777. package/workspaces/0-skinny-mink-of-management/input/public/images/667.jpg +0 -0
  778. package/workspaces/0-skinny-mink-of-management/input/public/images/669.jpg +0 -0
  779. package/workspaces/0-skinny-mink-of-management/input/public/images/67.jpg +0 -0
  780. package/workspaces/0-skinny-mink-of-management/input/public/images/671.jpg +0 -0
  781. package/workspaces/0-skinny-mink-of-management/input/public/images/672.jpg +0 -0
  782. package/workspaces/0-skinny-mink-of-management/input/public/images/673.jpg +0 -0
  783. package/workspaces/0-skinny-mink-of-management/input/public/images/675.jpg +0 -0
  784. package/workspaces/0-skinny-mink-of-management/input/public/images/676.jpg +0 -0
  785. package/workspaces/0-skinny-mink-of-management/input/public/images/677.jpg +0 -0
  786. package/workspaces/0-skinny-mink-of-management/input/public/images/678.jpg +0 -0
  787. package/workspaces/0-skinny-mink-of-management/input/public/images/680.jpg +0 -0
  788. package/workspaces/0-skinny-mink-of-management/input/public/images/681.jpg +0 -0
  789. package/workspaces/0-skinny-mink-of-management/input/public/images/682.jpg +0 -0
  790. package/workspaces/0-skinny-mink-of-management/input/public/images/684.jpg +0 -0
  791. package/workspaces/0-skinny-mink-of-management/input/public/images/685.jpg +0 -0
  792. package/workspaces/0-skinny-mink-of-management/input/public/images/689.jpg +0 -0
  793. package/workspaces/0-skinny-mink-of-management/input/public/images/69.jpg +0 -0
  794. package/workspaces/0-skinny-mink-of-management/input/public/images/692.jpg +0 -0
  795. package/workspaces/0-skinny-mink-of-management/input/public/images/693.jpg +0 -0
  796. package/workspaces/0-skinny-mink-of-management/input/public/images/694.jpg +0 -0
  797. package/workspaces/0-skinny-mink-of-management/input/public/images/695.jpg +0 -0
  798. package/workspaces/0-skinny-mink-of-management/input/public/images/697.jpg +0 -0
  799. package/workspaces/0-skinny-mink-of-management/input/public/images/698.jpg +0 -0
  800. package/workspaces/0-skinny-mink-of-management/input/public/images/700.jpg +0 -0
  801. package/workspaces/0-skinny-mink-of-management/input/public/images/704.jpg +0 -0
  802. package/workspaces/0-skinny-mink-of-management/input/public/images/706.jpg +0 -0
  803. package/workspaces/0-skinny-mink-of-management/input/public/images/709.jpg +0 -0
  804. package/workspaces/0-skinny-mink-of-management/input/public/images/71.jpg +0 -0
  805. package/workspaces/0-skinny-mink-of-management/input/public/images/710.jpg +0 -0
  806. package/workspaces/0-skinny-mink-of-management/input/public/images/711.jpg +0 -0
  807. package/workspaces/0-skinny-mink-of-management/input/public/images/712.jpg +0 -0
  808. package/workspaces/0-skinny-mink-of-management/input/public/images/713.jpg +0 -0
  809. package/workspaces/0-skinny-mink-of-management/input/public/images/714.jpg +0 -0
  810. package/workspaces/0-skinny-mink-of-management/input/public/images/716.jpg +0 -0
  811. package/workspaces/0-skinny-mink-of-management/input/public/images/717.jpg +0 -0
  812. package/workspaces/0-skinny-mink-of-management/input/public/images/718.jpg +0 -0
  813. package/workspaces/0-skinny-mink-of-management/input/public/images/72.jpg +0 -0
  814. package/workspaces/0-skinny-mink-of-management/input/public/images/720.jpg +0 -0
  815. package/workspaces/0-skinny-mink-of-management/input/public/images/721.jpg +0 -0
  816. package/workspaces/0-skinny-mink-of-management/input/public/images/722.jpg +0 -0
  817. package/workspaces/0-skinny-mink-of-management/input/public/images/724.jpg +0 -0
  818. package/workspaces/0-skinny-mink-of-management/input/public/images/726.jpg +0 -0
  819. package/workspaces/0-skinny-mink-of-management/input/public/images/727.jpg +0 -0
  820. package/workspaces/0-skinny-mink-of-management/input/public/images/728.jpg +0 -0
  821. package/workspaces/0-skinny-mink-of-management/input/public/images/73.jpg +0 -0
  822. package/workspaces/0-skinny-mink-of-management/input/public/images/730.jpg +0 -0
  823. package/workspaces/0-skinny-mink-of-management/input/public/images/732.jpg +0 -0
  824. package/workspaces/0-skinny-mink-of-management/input/public/images/733.jpg +0 -0
  825. package/workspaces/0-skinny-mink-of-management/input/public/images/737.jpg +0 -0
  826. package/workspaces/0-skinny-mink-of-management/input/public/images/738.jpg +0 -0
  827. package/workspaces/0-skinny-mink-of-management/input/public/images/740.jpg +0 -0
  828. package/workspaces/0-skinny-mink-of-management/input/public/images/741.jpg +0 -0
  829. package/workspaces/0-skinny-mink-of-management/input/public/images/742.jpg +0 -0
  830. package/workspaces/0-skinny-mink-of-management/input/public/images/745.jpg +0 -0
  831. package/workspaces/0-skinny-mink-of-management/input/public/images/747.jpg +0 -0
  832. package/workspaces/0-skinny-mink-of-management/input/public/images/748.jpg +0 -0
  833. package/workspaces/0-skinny-mink-of-management/input/public/images/749.jpg +0 -0
  834. package/workspaces/0-skinny-mink-of-management/input/public/images/75.jpg +0 -0
  835. package/workspaces/0-skinny-mink-of-management/input/public/images/752.jpg +0 -0
  836. package/workspaces/0-skinny-mink-of-management/input/public/images/753.jpg +0 -0
  837. package/workspaces/0-skinny-mink-of-management/input/public/images/754.jpg +0 -0
  838. package/workspaces/0-skinny-mink-of-management/input/public/images/755.jpg +0 -0
  839. package/workspaces/0-skinny-mink-of-management/input/public/images/756.jpg +0 -0
  840. package/workspaces/0-skinny-mink-of-management/input/public/images/757.jpg +0 -0
  841. package/workspaces/0-skinny-mink-of-management/input/public/images/758.jpg +0 -0
  842. package/workspaces/0-skinny-mink-of-management/input/public/images/759.jpg +0 -0
  843. package/workspaces/0-skinny-mink-of-management/input/public/images/76.jpg +0 -0
  844. package/workspaces/0-skinny-mink-of-management/input/public/images/760.jpg +0 -0
  845. package/workspaces/0-skinny-mink-of-management/input/public/images/762.jpg +0 -0
  846. package/workspaces/0-skinny-mink-of-management/input/public/images/763.jpg +0 -0
  847. package/workspaces/0-skinny-mink-of-management/input/public/images/765.jpg +0 -0
  848. package/workspaces/0-skinny-mink-of-management/input/public/images/766.jpg +0 -0
  849. package/workspaces/0-skinny-mink-of-management/input/public/images/767.jpg +0 -0
  850. package/workspaces/0-skinny-mink-of-management/input/public/images/768.jpg +0 -0
  851. package/workspaces/0-skinny-mink-of-management/input/public/images/769.jpg +0 -0
  852. package/workspaces/0-skinny-mink-of-management/input/public/images/771.jpg +0 -0
  853. package/workspaces/0-skinny-mink-of-management/input/public/images/772.jpg +0 -0
  854. package/workspaces/0-skinny-mink-of-management/input/public/images/774.jpg +0 -0
  855. package/workspaces/0-skinny-mink-of-management/input/public/images/776.jpg +0 -0
  856. package/workspaces/0-skinny-mink-of-management/input/public/images/777.jpg +0 -0
  857. package/workspaces/0-skinny-mink-of-management/input/public/images/778.jpg +0 -0
  858. package/workspaces/0-skinny-mink-of-management/input/public/images/779.jpg +0 -0
  859. package/workspaces/0-skinny-mink-of-management/input/public/images/78.jpg +0 -0
  860. package/workspaces/0-skinny-mink-of-management/input/public/images/784.jpg +0 -0
  861. package/workspaces/0-skinny-mink-of-management/input/public/images/785.jpg +0 -0
  862. package/workspaces/0-skinny-mink-of-management/input/public/images/787.jpg +0 -0
  863. package/workspaces/0-skinny-mink-of-management/input/public/images/788.jpg +0 -0
  864. package/workspaces/0-skinny-mink-of-management/input/public/images/789.jpg +0 -0
  865. package/workspaces/0-skinny-mink-of-management/input/public/images/792.jpg +0 -0
  866. package/workspaces/0-skinny-mink-of-management/input/public/images/793.jpg +0 -0
  867. package/workspaces/0-skinny-mink-of-management/input/public/images/794.jpg +0 -0
  868. package/workspaces/0-skinny-mink-of-management/input/public/images/796.jpg +0 -0
  869. package/workspaces/0-skinny-mink-of-management/input/public/images/797.jpg +0 -0
  870. package/workspaces/0-skinny-mink-of-management/input/public/images/798.jpg +0 -0
  871. package/workspaces/0-skinny-mink-of-management/input/public/images/8.jpg +0 -0
  872. package/workspaces/0-skinny-mink-of-management/input/public/images/80.jpg +0 -0
  873. package/workspaces/0-skinny-mink-of-management/input/public/images/800.jpg +0 -0
  874. package/workspaces/0-skinny-mink-of-management/input/public/images/801.jpg +0 -0
  875. package/workspaces/0-skinny-mink-of-management/input/public/images/802.jpg +0 -0
  876. package/workspaces/0-skinny-mink-of-management/input/public/images/803.jpg +0 -0
  877. package/workspaces/0-skinny-mink-of-management/input/public/images/805.jpg +0 -0
  878. package/workspaces/0-skinny-mink-of-management/input/public/images/806.jpg +0 -0
  879. package/workspaces/0-skinny-mink-of-management/input/public/images/807.jpg +0 -0
  880. package/workspaces/0-skinny-mink-of-management/input/public/images/808.jpg +0 -0
  881. package/workspaces/0-skinny-mink-of-management/input/public/images/809.jpg +0 -0
  882. package/workspaces/0-skinny-mink-of-management/input/public/images/81.jpg +0 -0
  883. package/workspaces/0-skinny-mink-of-management/input/public/images/810.jpg +0 -0
  884. package/workspaces/0-skinny-mink-of-management/input/public/images/811.jpg +0 -0
  885. package/workspaces/0-skinny-mink-of-management/input/public/images/812.jpg +0 -0
  886. package/workspaces/0-skinny-mink-of-management/input/public/images/813.jpg +0 -0
  887. package/workspaces/0-skinny-mink-of-management/input/public/images/815.jpg +0 -0
  888. package/workspaces/0-skinny-mink-of-management/input/public/images/816.jpg +0 -0
  889. package/workspaces/0-skinny-mink-of-management/input/public/images/82.jpg +0 -0
  890. package/workspaces/0-skinny-mink-of-management/input/public/images/821.jpg +0 -0
  891. package/workspaces/0-skinny-mink-of-management/input/public/images/822.jpg +0 -0
  892. package/workspaces/0-skinny-mink-of-management/input/public/images/823.jpg +0 -0
  893. package/workspaces/0-skinny-mink-of-management/input/public/images/824.jpg +0 -0
  894. package/workspaces/0-skinny-mink-of-management/input/public/images/825.jpg +0 -0
  895. package/workspaces/0-skinny-mink-of-management/input/public/images/826.jpg +0 -0
  896. package/workspaces/0-skinny-mink-of-management/input/public/images/827.jpg +0 -0
  897. package/workspaces/0-skinny-mink-of-management/input/public/images/828.jpg +0 -0
  898. package/workspaces/0-skinny-mink-of-management/input/public/images/83.jpg +0 -0
  899. package/workspaces/0-skinny-mink-of-management/input/public/images/831.jpg +0 -0
  900. package/workspaces/0-skinny-mink-of-management/input/public/images/837.jpg +0 -0
  901. package/workspaces/0-skinny-mink-of-management/input/public/images/838.jpg +0 -0
  902. package/workspaces/0-skinny-mink-of-management/input/public/images/839.jpg +0 -0
  903. package/workspaces/0-skinny-mink-of-management/input/public/images/84.jpg +0 -0
  904. package/workspaces/0-skinny-mink-of-management/input/public/images/840.jpg +0 -0
  905. package/workspaces/0-skinny-mink-of-management/input/public/images/841.jpg +0 -0
  906. package/workspaces/0-skinny-mink-of-management/input/public/images/844.jpg +0 -0
  907. package/workspaces/0-skinny-mink-of-management/input/public/images/847.jpg +0 -0
  908. package/workspaces/0-skinny-mink-of-management/input/public/images/848.jpg +0 -0
  909. package/workspaces/0-skinny-mink-of-management/input/public/images/849.jpg +0 -0
  910. package/workspaces/0-skinny-mink-of-management/input/public/images/85.jpg +0 -0
  911. package/workspaces/0-skinny-mink-of-management/input/public/images/850.jpg +0 -0
  912. package/workspaces/0-skinny-mink-of-management/input/public/images/851.jpg +0 -0
  913. package/workspaces/0-skinny-mink-of-management/input/public/images/852.jpg +0 -0
  914. package/workspaces/0-skinny-mink-of-management/input/public/images/853.jpg +0 -0
  915. package/workspaces/0-skinny-mink-of-management/input/public/images/854.jpg +0 -0
  916. package/workspaces/0-skinny-mink-of-management/input/public/images/855.jpg +0 -0
  917. package/workspaces/0-skinny-mink-of-management/input/public/images/856.jpg +0 -0
  918. package/workspaces/0-skinny-mink-of-management/input/public/images/858.jpg +0 -0
  919. package/workspaces/0-skinny-mink-of-management/input/public/images/859.jpg +0 -0
  920. package/workspaces/0-skinny-mink-of-management/input/public/images/860.jpg +0 -0
  921. package/workspaces/0-skinny-mink-of-management/input/public/images/861.jpg +0 -0
  922. package/workspaces/0-skinny-mink-of-management/input/public/images/862.jpg +0 -0
  923. package/workspaces/0-skinny-mink-of-management/input/public/images/863.jpg +0 -0
  924. package/workspaces/0-skinny-mink-of-management/input/public/images/864.jpg +0 -0
  925. package/workspaces/0-skinny-mink-of-management/input/public/images/865.jpg +0 -0
  926. package/workspaces/0-skinny-mink-of-management/input/public/images/866.jpg +0 -0
  927. package/workspaces/0-skinny-mink-of-management/input/public/images/867.jpg +0 -0
  928. package/workspaces/0-skinny-mink-of-management/input/public/images/868.jpg +0 -0
  929. package/workspaces/0-skinny-mink-of-management/input/public/images/869.jpg +0 -0
  930. package/workspaces/0-skinny-mink-of-management/input/public/images/87.jpg +0 -0
  931. package/workspaces/0-skinny-mink-of-management/input/public/images/870.jpg +0 -0
  932. package/workspaces/0-skinny-mink-of-management/input/public/images/871.jpg +0 -0
  933. package/workspaces/0-skinny-mink-of-management/input/public/images/873.jpg +0 -0
  934. package/workspaces/0-skinny-mink-of-management/input/public/images/874.jpg +0 -0
  935. package/workspaces/0-skinny-mink-of-management/input/public/images/875.jpg +0 -0
  936. package/workspaces/0-skinny-mink-of-management/input/public/images/876.jpg +0 -0
  937. package/workspaces/0-skinny-mink-of-management/input/public/images/877.jpg +0 -0
  938. package/workspaces/0-skinny-mink-of-management/input/public/images/878.jpg +0 -0
  939. package/workspaces/0-skinny-mink-of-management/input/public/images/879.jpg +0 -0
  940. package/workspaces/0-skinny-mink-of-management/input/public/images/88.jpg +0 -0
  941. package/workspaces/0-skinny-mink-of-management/input/public/images/881.jpg +0 -0
  942. package/workspaces/0-skinny-mink-of-management/input/public/images/882.jpg +0 -0
  943. package/workspaces/0-skinny-mink-of-management/input/public/images/883.jpg +0 -0
  944. package/workspaces/0-skinny-mink-of-management/input/public/images/885.jpg +0 -0
  945. package/workspaces/0-skinny-mink-of-management/input/public/images/886.jpg +0 -0
  946. package/workspaces/0-skinny-mink-of-management/input/public/images/892.jpg +0 -0
  947. package/workspaces/0-skinny-mink-of-management/input/public/images/893.jpg +0 -0
  948. package/workspaces/0-skinny-mink-of-management/input/public/images/894.jpg +0 -0
  949. package/workspaces/0-skinny-mink-of-management/input/public/images/896.jpg +0 -0
  950. package/workspaces/0-skinny-mink-of-management/input/public/images/897.jpg +0 -0
  951. package/workspaces/0-skinny-mink-of-management/input/public/images/898.jpg +0 -0
  952. package/workspaces/0-skinny-mink-of-management/input/public/images/899.jpg +0 -0
  953. package/workspaces/0-skinny-mink-of-management/input/public/images/900.jpg +0 -0
  954. package/workspaces/0-skinny-mink-of-management/input/public/images/901.jpg +0 -0
  955. package/workspaces/0-skinny-mink-of-management/input/public/images/904.jpg +0 -0
  956. package/workspaces/0-skinny-mink-of-management/input/public/images/906.jpg +0 -0
  957. package/workspaces/0-skinny-mink-of-management/input/public/images/907.jpg +0 -0
  958. package/workspaces/0-skinny-mink-of-management/input/public/images/908.jpg +0 -0
  959. package/workspaces/0-skinny-mink-of-management/input/public/images/910.jpg +0 -0
  960. package/workspaces/0-skinny-mink-of-management/input/public/images/911.jpg +0 -0
  961. package/workspaces/0-skinny-mink-of-management/input/public/images/912.jpg +0 -0
  962. package/workspaces/0-skinny-mink-of-management/input/public/images/914.jpg +0 -0
  963. package/workspaces/0-skinny-mink-of-management/input/public/images/915.jpg +0 -0
  964. package/workspaces/0-skinny-mink-of-management/input/public/images/916.jpg +0 -0
  965. package/workspaces/0-skinny-mink-of-management/input/public/images/917.jpg +0 -0
  966. package/workspaces/0-skinny-mink-of-management/input/public/images/918.jpg +0 -0
  967. package/workspaces/0-skinny-mink-of-management/input/public/images/919.jpg +0 -0
  968. package/workspaces/0-skinny-mink-of-management/input/public/images/92.jpg +0 -0
  969. package/workspaces/0-skinny-mink-of-management/input/public/images/920.jpg +0 -0
  970. package/workspaces/0-skinny-mink-of-management/input/public/images/923.jpg +0 -0
  971. package/workspaces/0-skinny-mink-of-management/input/public/images/924.jpg +0 -0
  972. package/workspaces/0-skinny-mink-of-management/input/public/images/926.jpg +0 -0
  973. package/workspaces/0-skinny-mink-of-management/input/public/images/927.jpg +0 -0
  974. package/workspaces/0-skinny-mink-of-management/input/public/images/928.jpg +0 -0
  975. package/workspaces/0-skinny-mink-of-management/input/public/images/931.jpg +0 -0
  976. package/workspaces/0-skinny-mink-of-management/input/public/images/932.jpg +0 -0
  977. package/workspaces/0-skinny-mink-of-management/input/public/images/933.jpg +0 -0
  978. package/workspaces/0-skinny-mink-of-management/input/public/images/934.jpg +0 -0
  979. package/workspaces/0-skinny-mink-of-management/input/public/images/936.jpg +0 -0
  980. package/workspaces/0-skinny-mink-of-management/input/public/images/937.jpg +0 -0
  981. package/workspaces/0-skinny-mink-of-management/input/public/images/938.jpg +0 -0
  982. package/workspaces/0-skinny-mink-of-management/input/public/images/939.jpg +0 -0
  983. package/workspaces/0-skinny-mink-of-management/input/public/images/942.jpg +0 -0
  984. package/workspaces/0-skinny-mink-of-management/input/public/images/944.jpg +0 -0
  985. package/workspaces/0-skinny-mink-of-management/input/public/images/948.jpg +0 -0
  986. package/workspaces/0-skinny-mink-of-management/input/public/images/949.jpg +0 -0
  987. package/workspaces/0-skinny-mink-of-management/input/public/images/951.jpg +0 -0
  988. package/workspaces/0-skinny-mink-of-management/input/public/images/952.jpg +0 -0
  989. package/workspaces/0-skinny-mink-of-management/input/public/images/954.jpg +0 -0
  990. package/workspaces/0-skinny-mink-of-management/input/public/images/955.jpg +0 -0
  991. package/workspaces/0-skinny-mink-of-management/input/public/images/956.jpg +0 -0
  992. package/workspaces/0-skinny-mink-of-management/input/public/images/958.jpg +0 -0
  993. package/workspaces/0-skinny-mink-of-management/input/public/images/959.jpg +0 -0
  994. package/workspaces/0-skinny-mink-of-management/input/public/images/960.jpg +0 -0
  995. package/workspaces/0-skinny-mink-of-management/input/public/images/961.jpg +0 -0
  996. package/workspaces/0-skinny-mink-of-management/input/public/images/962.jpg +0 -0
  997. package/workspaces/0-skinny-mink-of-management/input/public/images/963.jpg +0 -0
  998. package/workspaces/0-skinny-mink-of-management/input/public/images/966.jpg +0 -0
  999. package/workspaces/0-skinny-mink-of-management/input/public/images/968.jpg +0 -0
  1000. package/workspaces/0-skinny-mink-of-management/input/public/images/969.jpg +0 -0
  1001. package/workspaces/0-skinny-mink-of-management/input/public/images/970.jpg +0 -0
  1002. package/workspaces/0-skinny-mink-of-management/input/public/images/971.jpg +0 -0
  1003. package/workspaces/0-skinny-mink-of-management/input/public/images/972.jpg +0 -0
  1004. package/workspaces/0-skinny-mink-of-management/input/public/images/975.jpg +0 -0
  1005. package/workspaces/0-skinny-mink-of-management/input/public/images/976.jpg +0 -0
  1006. package/workspaces/0-skinny-mink-of-management/input/public/images/978.jpg +0 -0
  1007. package/workspaces/0-skinny-mink-of-management/input/public/images/979.jpg +0 -0
  1008. package/workspaces/0-skinny-mink-of-management/input/public/images/981.jpg +0 -0
  1009. package/workspaces/0-skinny-mink-of-management/input/public/images/983.jpg +0 -0
  1010. package/workspaces/0-skinny-mink-of-management/input/public/images/985.jpg +0 -0
  1011. package/workspaces/0-skinny-mink-of-management/input/public/images/987.jpg +0 -0
  1012. package/workspaces/0-skinny-mink-of-management/input/public/images/989.jpg +0 -0
  1013. package/workspaces/0-skinny-mink-of-management/input/public/images/990.jpg +0 -0
  1014. package/workspaces/0-skinny-mink-of-management/input/public/images/992.jpg +0 -0
  1015. package/workspaces/0-skinny-mink-of-management/input/public/images/993.jpg +0 -0
  1016. package/workspaces/0-skinny-mink-of-management/input/public/images/994.jpg +0 -0
  1017. package/workspaces/0-skinny-mink-of-management/input/public/images/995.jpg +0 -0
  1018. package/workspaces/0-skinny-mink-of-management/input/public/images/996.jpg +0 -0
  1019. package/workspaces/0-skinny-mink-of-management/input/public/images/999.jpg +0 -0
  1020. package/workspaces/0-skinny-mink-of-management/input/public/sample_submission.csv +0 -100
  1021. package/workspaces/0-skinny-mink-of-management/input/public/test.csv +0 -100
  1022. package/workspaces/0-skinny-mink-of-management/input/public/train.csv +0 -892
  1023. package/workspaces/0-skinny-mink-of-management/working/submission.csv +0 -100
  1024. package/workspaces/santa-2025/EXISTING_SOLUTION_ANALYSIS.md +0 -181
  1025. package/workspaces/santa-2025/FINAL_ANALYSIS_SUMMARY.md +0 -126
  1026. package/workspaces/santa-2025/FINAL_RECOMMENDATION.md +0 -189
  1027. package/workspaces/santa-2025/FINAL_REPORT.md +0 -207
  1028. package/workspaces/santa-2025/INDEX.md +0 -136
  1029. package/workspaces/santa-2025/PROGRESS.md +0 -210
  1030. package/workspaces/santa-2025/QUICK_WINS_ANALYSIS.md +0 -158
  1031. package/workspaces/santa-2025/README.md +0 -165
  1032. package/workspaces/santa-2025/SUMMARY.md +0 -239
  1033. package/workspaces/santa-2025/advanced_optimizer.py +0 -293
  1034. package/workspaces/santa-2025/analysis_summary.txt +0 -69
  1035. package/workspaces/santa-2025/baseline_log.txt +0 -21
  1036. package/workspaces/santa-2025/baseline_solution.py +0 -237
  1037. package/workspaces/santa-2025/baseline_submission.csv +0 -20101
  1038. package/workspaces/santa-2025/competition_data_page.html +0 -131
  1039. package/workspaces/santa-2025/competition_page.html +0 -131
  1040. package/workspaces/santa-2025/create_ensemble.py +0 -160
  1041. package/workspaces/santa-2025/ensemble_submission.csv +0 -20101
  1042. package/workspaces/santa-2025/evaluate_submission.py +0 -173
  1043. package/workspaces/santa-2025/explore_competition.py +0 -62
  1044. package/workspaces/santa-2025/fetch_competition_info.py +0 -57
  1045. package/workspaces/santa-2025/fix_small_configs_fast.py +0 -184
  1046. package/workspaces/santa-2025/improved_log.txt +0 -48
  1047. package/workspaces/santa-2025/improved_solution.py +0 -325
  1048. package/workspaces/santa-2025/improved_submission.csv +0 -20101
  1049. package/workspaces/santa-2025/optimize_small_configs.py +0 -272
  1050. package/workspaces/santa-2025/optimized_n1_to_n6.csv +0 -22
  1051. package/workspaces/santa-2025/optimized_solution.py +0 -393
  1052. package/workspaces/santa-2025/optimized_submission_score70.93.csv +0 -20101
  1053. package/workspaces/santa-2025/puzzle_010.png +0 -0
  1054. package/workspaces/santa-2025/puzzle_020.png +0 -0
  1055. package/workspaces/santa-2025/puzzle_050.png +0 -0
  1056. package/workspaces/santa-2025/puzzle_100.png +0 -0
  1057. package/workspaces/santa-2025/puzzle_150.png +0 -0
  1058. package/workspaces/santa-2025/puzzle_200.png +0 -0
  1059. package/workspaces/santa-2025/requirements.txt +0 -8
  1060. package/workspaces/santa-2025/sample_submission.csv +0 -20101
  1061. package/workspaces/santa-2025/santa-2025-getting-started.ipynb +0 -1
  1062. package/workspaces/santa-2025/santa-2025-getting-started.py +0 -320
  1063. package/workspaces/santa-2025/santa-2025-metric.ipynb +0 -1
  1064. package/workspaces/santa-2025/santa-2025-metric.py +0 -157
  1065. package/workspaces/santa-2025/santa-2025.zip +0 -0
  1066. package/workspaces/santa-2025/test_solution.py +0 -204
  1067. package/workspaces/santa-2025/ultra_optimized_score70.93.csv +0 -20101
  1068. package/workspaces/santa-2025/ultra_optimizer.py +0 -267
  1069. package/workspaces/santa-2025/visualize.py +0 -166
package/src/api.ts CHANGED
@@ -41,6 +41,38 @@ function isAuthError(status: number, errorText: string): boolean {
41
41
  );
42
42
  }
43
43
 
44
+ function extractErrorMessage(payload: unknown): string | undefined {
45
+ if (!payload) return undefined;
46
+ if (typeof payload === "string") return payload;
47
+
48
+ if (Array.isArray(payload)) {
49
+ const parts = payload
50
+ .map((item) => extractErrorMessage(item))
51
+ .filter((item): item is string => Boolean(item && item.trim()));
52
+ return parts.length > 0 ? parts.join("; ") : undefined;
53
+ }
54
+
55
+ if (typeof payload === "object") {
56
+ const record = payload as Record<string, unknown>;
57
+
58
+ if (typeof record.detail === "string") return record.detail;
59
+ if (record.detail !== undefined) {
60
+ const detailMessage = extractErrorMessage(record.detail);
61
+ if (detailMessage) return detailMessage;
62
+ }
63
+
64
+ if (typeof record.message === "string") return record.message;
65
+ if (typeof record.error === "string") return record.error;
66
+ if (typeof record.msg === "string") return record.msg;
67
+
68
+ if (Array.isArray(record.loc) && typeof record.msg === "string") {
69
+ return `${record.loc.join(".")}: ${record.msg}`;
70
+ }
71
+ }
72
+
73
+ return undefined;
74
+ }
75
+
44
76
  async function request<T = unknown>(
45
77
  method: string,
46
78
  path: string,
@@ -76,20 +108,21 @@ async function request<T = unknown>(
76
108
 
77
109
  if (!res.ok) {
78
110
  const rawError = data ? JSON.stringify(data) : text || `HTTP ${res.status}`;
111
+ const extractedError = extractErrorMessage(data) || text || `HTTP ${res.status}`;
79
112
 
80
113
  // Format authentication errors with helpful instructions
81
114
  if (isAuthError(res.status, rawError)) {
82
115
  return {
83
116
  ok: false,
84
117
  status: res.status,
85
- error: formatAuthError(),
118
+ error: formatAuthError(extractedError),
86
119
  };
87
120
  }
88
121
 
89
122
  return {
90
123
  ok: false,
91
124
  status: res.status,
92
- error: rawError,
125
+ error: extractedError,
93
126
  };
94
127
  }
95
128
 
@@ -161,14 +194,26 @@ export interface Dataset {
161
194
  dataset_type: string;
162
195
  size?: number;
163
196
  sample_size?: number;
197
+ train_ratio?: number;
164
198
  version_number?: string;
165
199
  root_dataset_id?: string;
166
200
  project_id?: string;
167
201
  schema?: Record<string, unknown>;
168
202
  schema_warnings?: string[];
203
+ validation?: Record<string, unknown>;
169
204
  annotation_status?: "none" | "in_progress" | "completed";
170
205
  annotation_config?: Record<string, unknown>;
171
206
  annotation_progress?: Record<string, unknown>;
207
+ status?: "initialized" | "uploading" | "converting" | "validating" | "ready" | "failed" | "generating" | "queued";
208
+ processing_error?: string;
209
+ type?: "training" | "evaluation" | "benchmark";
210
+ visibility?: "private" | "public";
211
+ is_competition?: boolean;
212
+ labels?: string[];
213
+ generation_type?: string;
214
+ is_seed?: boolean;
215
+ synthesis_session_id?: string;
216
+ column_mapping?: Record<string, string>;
172
217
  created_at: string;
173
218
  updated_at?: string;
174
219
  }
@@ -195,18 +240,40 @@ export async function getDataset(dataset: DatasetRef): Promise<ApiResult<Dataset
195
240
  return request<Dataset>("GET", `/felix/datasets/${dataset.name}/${dataset.version}`);
196
241
  }
197
242
 
198
- export interface DatasetCreateRequest {
243
+ export interface UploadUrlRequest {
199
244
  dataset_name: string;
200
- dataset_path: string;
201
- dataset_type?: "classification" | "ner" | "custom";
202
- size?: number;
203
- sample_size?: number;
245
+ dataset_type?: "classification" | "ner" | "custom" | "decoder";
246
+ format?: "jsonl" | "csv" | "parquet";
247
+ content_type?: string;
204
248
  }
205
249
 
206
- export async function createDataset(
207
- req: DatasetCreateRequest
250
+ export interface UploadUrlResponse {
251
+ upload_url?: string;
252
+ presigned_url?: string;
253
+ dataset_id: string;
254
+ key: string;
255
+ expires_in: number;
256
+ }
257
+
258
+ export async function getUploadUrl(
259
+ req: UploadUrlRequest
260
+ ): Promise<ApiResult<UploadUrlResponse>> {
261
+ return request<UploadUrlResponse>("POST", "/felix/datasets/upload/url", req);
262
+ }
263
+
264
+ export interface ProcessUploadRequest {
265
+ dataset_id: string;
266
+ dataset_name: string;
267
+ dataset_type?: "classification" | "ner" | "custom" | "decoder";
268
+ format?: "jsonl" | "csv" | "parquet";
269
+ schema?: Record<string, string>;
270
+ project_id?: string;
271
+ }
272
+
273
+ export async function processUpload(
274
+ req: ProcessUploadRequest
208
275
  ): Promise<ApiResult<Dataset>> {
209
- return request<Dataset>("POST", "/felix/datasets", req);
276
+ return request<Dataset>("POST", "/felix/datasets/upload/process", req);
210
277
  }
211
278
 
212
279
  export async function deleteDataset(dataset: DatasetRef): Promise<ApiResult> {
@@ -231,7 +298,7 @@ export async function listDatasetVersions(
231
298
 
232
299
  export interface DatasetMetadataUpdate {
233
300
  dataset_name?: string;
234
- dataset_type?: "ner" | "classification" | "custom";
301
+ dataset_type?: "ner" | "classification" | "custom" | "decoder";
235
302
  project_id?: string;
236
303
  }
237
304
 
@@ -240,7 +307,7 @@ export async function updateDatasetMetadata(
240
307
  update: DatasetMetadataUpdate
241
308
  ): Promise<ApiResult<Dataset>> {
242
309
  return request<Dataset>(
243
- "PATCH",
310
+ "PUT",
244
311
  `/felix/datasets/${dataset.name}/${dataset.version}`,
245
312
  update
246
313
  );
@@ -260,70 +327,80 @@ export async function previewDataset(
260
327
 
261
328
  export interface DatasetUploadRequest {
262
329
  dataset_name: string;
263
- dataset_type?: "ner" | "classification" | "custom";
330
+ dataset_type?: "ner" | "classification" | "custom" | "decoder";
264
331
  format?: "jsonl" | "csv" | "parquet";
265
332
  schema?: Record<string, string>;
333
+ project_id?: string;
266
334
  }
267
335
 
268
336
  export async function uploadDataset(
269
337
  filePath: string,
270
338
  options: DatasetUploadRequest
271
339
  ): Promise<ApiResult<Dataset>> {
272
- const baseUrl = getBaseUrl().replace(/\/$/, "");
273
- const apiKey = getApiKey();
274
- const url = `${baseUrl}/felix/datasets/upload`;
275
-
276
- const headers: Record<string, string> = {
277
- "User-Agent": "pioneer-cli/0.1.0",
278
- };
279
-
280
- if (apiKey) {
281
- headers["X-API-Key"] = apiKey;
282
- }
283
-
284
340
  try {
285
341
  const fs = await import("fs");
286
342
  const path = await import("path");
287
343
  const fileContent = fs.readFileSync(filePath);
288
344
  const filename = path.basename(filePath);
289
345
 
290
- const formData = new FormData();
291
- formData.append("file", new Blob([fileContent]), filename);
292
- formData.append("dataset_name", options.dataset_name);
293
- if (options.dataset_type) {
294
- formData.append("dataset_type", options.dataset_type);
295
- }
296
- if (options.format) {
297
- formData.append("format", options.format);
298
- }
299
- if (options.schema) {
300
- formData.append("schema", JSON.stringify(options.schema));
301
- }
346
+ // Detect format from file extension if not provided
347
+ const ext = path.extname(filename).slice(1) as "jsonl" | "csv" | "parquet";
348
+ const format = options.format || ext || "jsonl";
302
349
 
303
- const res = await fetch(url, {
304
- method: "POST",
305
- headers,
306
- body: formData,
350
+ // Step 1: Get presigned upload URL
351
+ const urlResult = await getUploadUrl({
352
+ dataset_name: options.dataset_name,
353
+ dataset_type: options.dataset_type,
354
+ format,
355
+ content_type: "application/octet-stream",
307
356
  });
308
357
 
309
- const text = await res.text();
358
+ if (!urlResult.ok || !urlResult.data) {
359
+ return {
360
+ ok: false,
361
+ status: urlResult.status,
362
+ error: urlResult.error || "Failed to get upload URL",
363
+ };
364
+ }
310
365
 
311
- let data: Dataset | undefined;
312
- try {
313
- data = JSON.parse(text) as Dataset;
314
- } catch {
315
- // Not JSON
366
+ const { dataset_id } = urlResult.data;
367
+ const uploadUrl = urlResult.data.upload_url || urlResult.data.presigned_url;
368
+ if (!uploadUrl) {
369
+ return {
370
+ ok: false,
371
+ status: 500,
372
+ error: "Upload URL not provided by backend",
373
+ };
316
374
  }
317
375
 
318
- if (!res.ok) {
376
+ // Step 2: Upload file directly to S3 via presigned URL
377
+ const uploadRes = await fetch(uploadUrl, {
378
+ method: "PUT",
379
+ headers: {
380
+ "Content-Type": "application/octet-stream",
381
+ },
382
+ body: fileContent,
383
+ });
384
+
385
+ if (!uploadRes.ok) {
319
386
  return {
320
387
  ok: false,
321
- status: res.status,
322
- error: data ? JSON.stringify(data) : text || `HTTP ${res.status}`,
388
+ status: uploadRes.status,
389
+ error: `Failed to upload file to S3: HTTP ${uploadRes.status}`,
323
390
  };
324
391
  }
325
392
 
326
- return { ok: true, status: res.status, data };
393
+ // Step 3: Trigger processing
394
+ const processResult = await processUpload({
395
+ dataset_id,
396
+ dataset_name: options.dataset_name,
397
+ dataset_type: options.dataset_type,
398
+ format,
399
+ schema: options.schema,
400
+ project_id: options.project_id,
401
+ });
402
+
403
+ return processResult;
327
404
  } catch (err) {
328
405
  return {
329
406
  ok: false,
@@ -519,6 +596,21 @@ export async function analyzeDataset(
519
596
  });
520
597
  }
521
598
 
599
+ export interface DatasetLLMAnalysisRequest {
600
+ task_type: "ner" | "classification" | "generative";
601
+ task_description?: string;
602
+ labels?: string[];
603
+ dataset?: Record<string, unknown>[];
604
+ dataset_name?: string;
605
+ dataset_version?: string;
606
+ }
607
+
608
+ export async function analyzeDatasetLLM(
609
+ req: DatasetLLMAnalysisRequest
610
+ ): Promise<ApiResult<DiversityLLMAnalysis>> {
611
+ return request<DiversityLLMAnalysis>("POST", "/felix/dataset/analyze_llm", req);
612
+ }
613
+
522
614
  // ─────────────────────────────────────────────────────────────────────────────
523
615
  // Dataset Generation
524
616
  // ─────────────────────────────────────────────────────────────────────────────
@@ -545,6 +637,160 @@ export interface GenerateResponse {
545
637
  dataset?: Record<string, unknown>;
546
638
  }
547
639
 
640
+ export type GenerateTaskType =
641
+ | "ner"
642
+ | "classification"
643
+ | "custom"
644
+ | "decoder"
645
+ | "records"
646
+ | "fields";
647
+
648
+ export interface GenerateAsyncResponse {
649
+ job_id: string;
650
+ status?: string;
651
+ dataset_name: string;
652
+ task_type: GenerateTaskType;
653
+ is_seed?: boolean;
654
+ message?: string;
655
+ }
656
+
657
+ export interface GenerateJobStatus {
658
+ job_id: string;
659
+ status: "queued" | "generating" | "ready" | "failed" | string;
660
+ data?: Record<string, unknown>[];
661
+ count?: number;
662
+ task_type?: string;
663
+ token_usage?: number;
664
+ dataset?: Record<string, unknown>;
665
+ error?: string;
666
+ is_seed?: boolean;
667
+ created_at?: string;
668
+ }
669
+
670
+ export interface GenerateRequest {
671
+ task_type: GenerateTaskType;
672
+ dataset_name: string;
673
+ num_examples?: number;
674
+ domain_description?: string;
675
+ temperature?: number;
676
+ quality?: "light" | "medium" | "heavy";
677
+ generation_profile?: "auto" | "fast" | "balanced" | "quality";
678
+ session_id?: string;
679
+ config_num_examples?: number;
680
+ seed?: number;
681
+ labels?: string[];
682
+ classified_examples?: Record<string, unknown>[];
683
+ multi_label?: boolean;
684
+ class_balance?: Record<string, number>;
685
+ batch_size?: number;
686
+ negative_ratio?: number;
687
+ fields?: RecordField[];
688
+ input_fields?: RecordField[];
689
+ output_fields?: RecordField[];
690
+ prompt?: string;
691
+ output_format?: Record<string, unknown>;
692
+ infer_output_format?: boolean;
693
+ instruction?: string;
694
+ constraints?: ConstraintRequest[];
695
+ multiplicator?: Record<string, unknown>;
696
+ include_reasoning_trace?: boolean;
697
+ reasoning_effort?: "low" | "medium" | "high";
698
+ use_meta_felix?: boolean;
699
+ min_criteria?: number;
700
+ target_choices?: number;
701
+ project_id?: string;
702
+ type?: "training" | "evaluation" | "split";
703
+ visibility?: "private" | "public";
704
+ split_ratio?: Record<string, number>;
705
+ }
706
+
707
+ const GENERATION_POLL_INTERVAL_MS = 2000;
708
+ const GENERATION_MAX_ATTEMPTS = 300; // 10 minutes
709
+
710
+ function sleep(ms: number): Promise<void> {
711
+ return new Promise((resolve) => setTimeout(resolve, ms));
712
+ }
713
+
714
+ function makeDefaultDatasetName(taskType: GenerateTaskType): string {
715
+ return `${taskType}-dataset-${Date.now()}`;
716
+ }
717
+
718
+ export async function startGeneration(
719
+ req: GenerateRequest,
720
+ options: { isSeed?: boolean; synthesisSessionId?: string } = {}
721
+ ): Promise<ApiResult<GenerateAsyncResponse>> {
722
+ const params = new URLSearchParams();
723
+ if (options.isSeed) params.set("is_seed", "true");
724
+ if (options.synthesisSessionId) {
725
+ params.set("synthesis_session_id", options.synthesisSessionId);
726
+ }
727
+ const query = params.toString();
728
+ const url = query ? `/generate?${query}` : "/generate";
729
+ return request<GenerateAsyncResponse>("POST", url, req);
730
+ }
731
+
732
+ export async function getGenerationJobStatus(
733
+ jobId: string
734
+ ): Promise<ApiResult<GenerateJobStatus>> {
735
+ return request<GenerateJobStatus>("GET", `/generate/jobs/${jobId}`);
736
+ }
737
+
738
+ export async function waitForGenerationJob(
739
+ jobId: string,
740
+ options: { pollIntervalMs?: number; maxAttempts?: number } = {}
741
+ ): Promise<ApiResult<GenerateJobStatus>> {
742
+ const pollIntervalMs = options.pollIntervalMs ?? GENERATION_POLL_INTERVAL_MS;
743
+ const maxAttempts = options.maxAttempts ?? GENERATION_MAX_ATTEMPTS;
744
+
745
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
746
+ const statusResult = await getGenerationJobStatus(jobId);
747
+ if (!statusResult.ok || !statusResult.data) {
748
+ if (statusResult.status === 404 && attempt < 5) {
749
+ await sleep(pollIntervalMs);
750
+ continue;
751
+ }
752
+ return {
753
+ ok: false,
754
+ status: statusResult.status,
755
+ error: statusResult.error ?? "Failed to fetch generation status",
756
+ };
757
+ }
758
+
759
+ if (statusResult.data.status === "ready") {
760
+ return statusResult;
761
+ }
762
+
763
+ if (statusResult.data.status === "failed") {
764
+ return {
765
+ ok: false,
766
+ status: statusResult.status || 500,
767
+ error: statusResult.data.error ?? "Generation failed",
768
+ };
769
+ }
770
+
771
+ await sleep(pollIntervalMs);
772
+ }
773
+
774
+ return {
775
+ ok: false,
776
+ status: 408,
777
+ error: `Generation timed out for job ${jobId}. Use 'pioneer dataset get <name[:version]>' once ready.`,
778
+ };
779
+ }
780
+
781
+ async function generateDataset(req: GenerateRequest): Promise<ApiResult<GenerateJobStatus>> {
782
+ const startResult = await startGeneration(req);
783
+ if (!startResult.ok || !startResult.data) {
784
+ return {
785
+ ok: false,
786
+ status: startResult.status,
787
+ error: startResult.error ?? "Failed to start generation job",
788
+ };
789
+ }
790
+
791
+ return waitForGenerationJob(startResult.data.job_id);
792
+ }
793
+
548
794
  export interface InferLabelsResponse {
549
795
  success: boolean;
550
796
  labels: string[];
@@ -572,12 +818,50 @@ export interface GenerateNERRequest {
572
818
  save_dataset?: boolean;
573
819
  dataset_name?: string;
574
820
  project_id?: string;
821
+ generation_profile?: "auto" | "fast" | "balanced" | "quality";
822
+ include_reasoning_trace?: boolean;
823
+ reasoning_effort?: "low" | "medium" | "high";
824
+ quality?: "light" | "medium" | "heavy";
825
+ type?: "training" | "evaluation" | "split";
826
+ visibility?: "private" | "public";
827
+ negative_ratio?: number;
828
+ split_ratio?: Record<string, number>;
829
+ multiplicator?: Record<string, unknown>;
830
+ use_meta_felix?: boolean;
831
+ min_criteria?: number;
832
+ target_choices?: number;
833
+ classified_examples?: Record<string, unknown>[];
575
834
  }
576
835
 
577
836
  export async function generateNER(
578
837
  req: GenerateNERRequest
579
- ): Promise<ApiResult<GenerateResponse>> {
580
- return request<GenerateResponse>("POST", "/felix/generate/ner", req);
838
+ ): Promise<ApiResult<GenerateJobStatus>> {
839
+ return generateDataset({
840
+ task_type: "ner",
841
+ dataset_name: req.dataset_name ?? makeDefaultDatasetName("ner"),
842
+ labels: req.labels,
843
+ num_examples: req.num_examples,
844
+ domain_description: req.domain_description,
845
+ seed: req.seed,
846
+ session_id: req.session_id,
847
+ config_num_examples: req.config_num_examples,
848
+ temperature: req.temperature,
849
+ constraints: req.constraints,
850
+ project_id: req.project_id,
851
+ generation_profile: req.generation_profile,
852
+ include_reasoning_trace: req.include_reasoning_trace,
853
+ reasoning_effort: req.reasoning_effort,
854
+ quality: req.quality,
855
+ min_criteria: req.min_criteria,
856
+ target_choices: req.target_choices,
857
+ type: req.type,
858
+ visibility: req.visibility,
859
+ negative_ratio: req.negative_ratio,
860
+ split_ratio: req.split_ratio,
861
+ multiplicator: req.multiplicator,
862
+ use_meta_felix: req.use_meta_felix,
863
+ classified_examples: req.classified_examples,
864
+ });
581
865
  }
582
866
 
583
867
  export interface LabelExistingNERRequest {
@@ -589,12 +873,13 @@ export interface LabelExistingNERRequest {
589
873
  constraints?: ConstraintRequest[];
590
874
  save_dataset?: boolean;
591
875
  dataset_name?: string;
876
+ project_id?: string;
592
877
  }
593
878
 
594
879
  export async function labelExistingNER(
595
880
  req: LabelExistingNERRequest
596
881
  ): Promise<ApiResult<GenerateResponse>> {
597
- return request<GenerateResponse>("POST", "/felix/generate/ner/label-existing", req);
882
+ return request<GenerateResponse>("POST", "/generate/ner/label-existing", req);
598
883
  }
599
884
 
600
885
  export interface InferNERLabelsRequest {
@@ -604,7 +889,7 @@ export interface InferNERLabelsRequest {
604
889
  export async function inferNERLabels(
605
890
  req: InferNERLabelsRequest
606
891
  ): Promise<ApiResult<InferLabelsResponse>> {
607
- return request<InferLabelsResponse>("POST", "/felix/generate/ner/infer-labels", req);
892
+ return request<InferLabelsResponse>("POST", "/generate/ner/infer-labels", req);
608
893
  }
609
894
 
610
895
  // Classification Generation
@@ -623,12 +908,51 @@ export interface GenerateClassificationRequest {
623
908
  save_dataset?: boolean;
624
909
  dataset_name?: string;
625
910
  project_id?: string;
911
+ generation_profile?: "auto" | "fast" | "balanced" | "quality";
912
+ include_reasoning_trace?: boolean;
913
+ reasoning_effort?: "low" | "medium" | "high";
914
+ quality?: "light" | "medium" | "heavy";
915
+ min_criteria?: number;
916
+ target_choices?: number;
917
+ split_ratio?: Record<string, number>;
918
+ negative_ratio?: number;
919
+ multiplicator?: Record<string, unknown>;
920
+ use_meta_felix?: boolean;
921
+ type?: "training" | "evaluation" | "split";
922
+ visibility?: "private" | "public";
626
923
  }
627
924
 
628
925
  export async function generateClassification(
629
926
  req: GenerateClassificationRequest
630
- ): Promise<ApiResult<GenerateResponse>> {
631
- return request<GenerateResponse>("POST", "/felix/generate/classification", req);
927
+ ): Promise<ApiResult<GenerateJobStatus>> {
928
+ return generateDataset({
929
+ task_type: "classification",
930
+ dataset_name: req.dataset_name ?? makeDefaultDatasetName("classification"),
931
+ labels: req.labels,
932
+ num_examples: req.num_examples,
933
+ domain_description: req.domain_description,
934
+ seed: req.seed,
935
+ class_balance: req.class_balance,
936
+ session_id: req.session_id,
937
+ config_num_examples: req.config_num_examples,
938
+ temperature: req.temperature,
939
+ batch_size: req.batch_size,
940
+ constraints: req.constraints,
941
+ multi_label: req.multi_label,
942
+ project_id: req.project_id,
943
+ generation_profile: req.generation_profile,
944
+ include_reasoning_trace: req.include_reasoning_trace,
945
+ reasoning_effort: req.reasoning_effort,
946
+ quality: req.quality,
947
+ min_criteria: req.min_criteria,
948
+ target_choices: req.target_choices,
949
+ split_ratio: req.split_ratio,
950
+ multiplicator: req.multiplicator,
951
+ use_meta_felix: req.use_meta_felix,
952
+ type: req.type,
953
+ visibility: req.visibility,
954
+ negative_ratio: req.negative_ratio,
955
+ });
632
956
  }
633
957
 
634
958
  export interface LabelExistingClassificationRequest {
@@ -643,12 +967,13 @@ export interface LabelExistingClassificationRequest {
643
967
  multi_label?: boolean;
644
968
  save_dataset?: boolean;
645
969
  dataset_name?: string;
970
+ project_id?: string;
646
971
  }
647
972
 
648
973
  export async function labelExistingClassification(
649
974
  req: LabelExistingClassificationRequest
650
975
  ): Promise<ApiResult<GenerateResponse>> {
651
- return request<GenerateResponse>("POST", "/felix/generate/classification/label-existing", req);
976
+ return request<GenerateResponse>("POST", "/generate/classification/label-existing", req);
652
977
  }
653
978
 
654
979
  export interface InferClassificationLabelsRequest {
@@ -658,7 +983,7 @@ export interface InferClassificationLabelsRequest {
658
983
  export async function inferClassificationLabels(
659
984
  req: InferClassificationLabelsRequest
660
985
  ): Promise<ApiResult<InferLabelsResponse>> {
661
- return request<InferLabelsResponse>("POST", "/felix/generate/classification/infer-labels", req);
986
+ return request<InferLabelsResponse>("POST", "/generate/classification/infer-labels", req);
662
987
  }
663
988
 
664
989
  // Custom Generation
@@ -669,53 +994,164 @@ export interface GenerateCustomRequest {
669
994
  num_examples?: number;
670
995
  seed?: number;
671
996
  session_id?: string;
672
- min_criteria?: number;
673
997
  temperature?: number;
674
998
  constraints?: ConstraintRequest[];
675
999
  save_dataset?: boolean;
676
1000
  dataset_name?: string;
677
1001
  project_id?: string;
1002
+ generation_profile?: "auto" | "fast" | "balanced" | "quality";
1003
+ include_reasoning_trace?: boolean;
1004
+ reasoning_effort?: "low" | "medium" | "high";
1005
+ quality?: "light" | "medium" | "heavy";
1006
+ min_criteria?: number;
1007
+ target_choices?: number;
1008
+ split_ratio?: Record<string, number>;
1009
+ negative_ratio?: number;
1010
+ multiplicator?: Record<string, unknown>;
1011
+ use_meta_felix?: boolean;
1012
+ type?: "training" | "evaluation" | "split";
1013
+ visibility?: "private" | "public";
678
1014
  }
679
1015
 
680
1016
  export async function generateCustom(
681
1017
  req: GenerateCustomRequest
682
- ): Promise<ApiResult<GenerateResponse>> {
683
- return request<GenerateResponse>("POST", "/felix/generate/custom", req);
1018
+ ): Promise<ApiResult<GenerateJobStatus>> {
1019
+ return generateDataset({
1020
+ task_type: "custom",
1021
+ dataset_name: req.dataset_name ?? makeDefaultDatasetName("custom"),
1022
+ prompt: req.prompt,
1023
+ output_format: req.output_format,
1024
+ infer_output_format: req.infer_output_format,
1025
+ num_examples: req.num_examples,
1026
+ seed: req.seed,
1027
+ session_id: req.session_id,
1028
+ min_criteria: req.min_criteria,
1029
+ temperature: req.temperature,
1030
+ constraints: req.constraints,
1031
+ project_id: req.project_id,
1032
+ generation_profile: req.generation_profile,
1033
+ include_reasoning_trace: req.include_reasoning_trace,
1034
+ reasoning_effort: req.reasoning_effort,
1035
+ target_choices: req.target_choices,
1036
+ quality: req.quality,
1037
+ split_ratio: req.split_ratio,
1038
+ negative_ratio: req.negative_ratio,
1039
+ multiplicator: req.multiplicator,
1040
+ use_meta_felix: req.use_meta_felix,
1041
+ type: req.type,
1042
+ visibility: req.visibility,
1043
+ });
684
1044
  }
685
1045
 
686
1046
  // Records Generation
687
1047
  export interface GenerateRecordsRequest {
688
1048
  fields: RecordField[];
1049
+ dataset_name?: string;
689
1050
  num_examples?: number;
690
1051
  domain_description?: string;
691
1052
  seed?: number;
692
1053
  temperature?: number;
693
1054
  constraints?: ConstraintRequest[];
1055
+ quality?: "light" | "medium" | "heavy";
1056
+ generation_profile?: "auto" | "fast" | "balanced" | "quality";
1057
+ include_reasoning_trace?: boolean;
1058
+ reasoning_effort?: "low" | "medium" | "high";
1059
+ min_criteria?: number;
1060
+ target_choices?: number;
1061
+ split_ratio?: Record<string, number>;
1062
+ negative_ratio?: number;
1063
+ multiplicator?: Record<string, unknown>;
1064
+ project_id?: string;
1065
+ use_meta_felix?: boolean;
1066
+ type?: "training" | "evaluation" | "split";
1067
+ visibility?: "private" | "public";
1068
+ classified_examples?: Record<string, unknown>[];
694
1069
  }
695
1070
 
696
1071
  export async function generateRecords(
697
1072
  req: GenerateRecordsRequest
698
- ): Promise<ApiResult<GenerateResponse>> {
699
- return request<GenerateResponse>("POST", "/felix/generate/records", req);
1073
+ ): Promise<ApiResult<GenerateJobStatus>> {
1074
+ return generateDataset({
1075
+ task_type: "records",
1076
+ dataset_name: req.dataset_name ?? makeDefaultDatasetName("records"),
1077
+ fields: req.fields,
1078
+ num_examples: req.num_examples,
1079
+ domain_description: req.domain_description,
1080
+ seed: req.seed,
1081
+ temperature: req.temperature,
1082
+ constraints: req.constraints,
1083
+ project_id: req.project_id,
1084
+ generation_profile: req.generation_profile,
1085
+ include_reasoning_trace: req.include_reasoning_trace,
1086
+ reasoning_effort: req.reasoning_effort,
1087
+ quality: req.quality,
1088
+ min_criteria: req.min_criteria,
1089
+ target_choices: req.target_choices,
1090
+ split_ratio: req.split_ratio,
1091
+ negative_ratio: req.negative_ratio,
1092
+ multiplicator: req.multiplicator,
1093
+ use_meta_felix: req.use_meta_felix,
1094
+ type: req.type,
1095
+ visibility: req.visibility,
1096
+ classified_examples: req.classified_examples,
1097
+ });
700
1098
  }
701
1099
 
702
1100
  // Fields Generation
703
1101
  export interface GenerateFieldsRequest {
704
1102
  input_fields: RecordField[];
705
1103
  output_fields: RecordField[];
1104
+ dataset_name?: string;
706
1105
  num_examples?: number;
707
1106
  domain_description?: string;
708
1107
  seed?: number;
709
1108
  temperature?: number;
710
1109
  constraints?: ConstraintRequest[];
711
1110
  save_dataset?: boolean;
712
- dataset_name?: string;
1111
+ quality?: "light" | "medium" | "heavy";
1112
+ generation_profile?: "auto" | "fast" | "balanced" | "quality";
1113
+ include_reasoning_trace?: boolean;
1114
+ reasoning_effort?: "low" | "medium" | "high";
1115
+ min_criteria?: number;
1116
+ target_choices?: number;
1117
+ split_ratio?: Record<string, number>;
1118
+ negative_ratio?: number;
1119
+ multiplicator?: Record<string, unknown>;
1120
+ project_id?: string;
1121
+ use_meta_felix?: boolean;
1122
+ type?: "training" | "evaluation" | "split";
1123
+ visibility?: "private" | "public";
1124
+ classified_examples?: Record<string, unknown>[];
713
1125
  }
714
1126
 
715
1127
  export async function generateFields(
716
1128
  req: GenerateFieldsRequest
717
- ): Promise<ApiResult<GenerateResponse>> {
718
- return request<GenerateResponse>("POST", "/felix/generate/fields", req);
1129
+ ): Promise<ApiResult<GenerateJobStatus>> {
1130
+ return generateDataset({
1131
+ task_type: "fields",
1132
+ dataset_name: req.dataset_name ?? makeDefaultDatasetName("fields"),
1133
+ input_fields: req.input_fields,
1134
+ output_fields: req.output_fields,
1135
+ num_examples: req.num_examples,
1136
+ domain_description: req.domain_description,
1137
+ seed: req.seed,
1138
+ temperature: req.temperature,
1139
+ constraints: req.constraints,
1140
+ project_id: req.project_id,
1141
+ generation_profile: req.generation_profile,
1142
+ include_reasoning_trace: req.include_reasoning_trace,
1143
+ reasoning_effort: req.reasoning_effort,
1144
+ quality: req.quality,
1145
+ min_criteria: req.min_criteria,
1146
+ target_choices: req.target_choices,
1147
+ split_ratio: req.split_ratio,
1148
+ negative_ratio: req.negative_ratio,
1149
+ multiplicator: req.multiplicator,
1150
+ use_meta_felix: req.use_meta_felix,
1151
+ type: req.type,
1152
+ visibility: req.visibility,
1153
+ classified_examples: req.classified_examples,
1154
+ });
719
1155
  }
720
1156
 
721
1157
  export interface LabelExistingFieldsRequest {
@@ -728,12 +1164,13 @@ export interface LabelExistingFieldsRequest {
728
1164
  constraints?: ConstraintRequest[];
729
1165
  save_dataset?: boolean;
730
1166
  dataset_name?: string;
1167
+ project_id?: string;
731
1168
  }
732
1169
 
733
1170
  export async function labelExistingFields(
734
1171
  req: LabelExistingFieldsRequest
735
1172
  ): Promise<ApiResult<GenerateResponse>> {
736
- return request<GenerateResponse>("POST", "/felix/generate/fields/label-existing", req);
1173
+ return request<GenerateResponse>("POST", "/generate/fields/label-existing", req);
737
1174
  }
738
1175
 
739
1176
  export interface InferFieldsRequest {
@@ -743,7 +1180,53 @@ export interface InferFieldsRequest {
743
1180
  export async function inferFields(
744
1181
  req: InferFieldsRequest
745
1182
  ): Promise<ApiResult<InferFieldsResponse>> {
746
- return request<InferFieldsResponse>("POST", "/felix/generate/fields/infer-fields", req);
1183
+ return request<InferFieldsResponse>("POST", "/generate/fields/infer-fields", req);
1184
+ }
1185
+
1186
+ export interface ImprovePromptRequest {
1187
+ prompt: string;
1188
+ data_type?: string;
1189
+ }
1190
+
1191
+ export interface ImprovePromptResponse {
1192
+ success: boolean;
1193
+ improved_prompt: string;
1194
+ summary: string;
1195
+ }
1196
+
1197
+ export async function improvePrompt(
1198
+ req: ImprovePromptRequest
1199
+ ): Promise<ApiResult<ImprovePromptResponse>> {
1200
+ return request<ImprovePromptResponse>("POST", "/generate/improve-prompt", req);
1201
+ }
1202
+
1203
+ export interface InferAdvancedRequest {
1204
+ prompt: string;
1205
+ data_type?: string;
1206
+ labels?: string[];
1207
+ }
1208
+
1209
+ export interface InferredConstraint {
1210
+ description: string;
1211
+ choices?: string[];
1212
+ probability?: number;
1213
+ }
1214
+
1215
+ export interface InferredMultiplicator {
1216
+ prompt: string;
1217
+ choices: string[];
1218
+ }
1219
+
1220
+ export interface InferAdvancedResponse {
1221
+ success: boolean;
1222
+ constraints: InferredConstraint[];
1223
+ multiplicator?: InferredMultiplicator;
1224
+ }
1225
+
1226
+ export async function inferAdvanced(
1227
+ req: InferAdvancedRequest
1228
+ ): Promise<ApiResult<InferAdvancedResponse>> {
1229
+ return request<InferAdvancedResponse>("POST", "/generate/infer-advanced", req);
747
1230
  }
748
1231
 
749
1232
  // ─────────────────────────────────────────────────────────────────────────────
@@ -753,6 +1236,7 @@ export async function inferFields(
753
1236
  export interface TrainingJob {
754
1237
  id: string;
755
1238
  user_id: string;
1239
+ project_id?: string;
756
1240
  model_name?: string;
757
1241
  datasets: Array<{ name: string; version?: string }>;
758
1242
  base_model: string;
@@ -771,7 +1255,13 @@ export interface TrainingJob {
771
1255
  completed_at?: string;
772
1256
  model_auto_selected?: boolean;
773
1257
  model_selection_reason?: string;
1258
+ task_type?: string;
1259
+ labels?: string[];
1260
+ example?: string;
1261
+ deployment_status?: string;
774
1262
  metrics?: Record<string, unknown>;
1263
+ version_number?: string;
1264
+ root_job_id?: string;
775
1265
  }
776
1266
 
777
1267
  export interface TrainingJobListResponse {
@@ -1033,12 +1523,14 @@ export async function listTrainedModels(): Promise<
1033
1523
  export interface AllModelsResponse {
1034
1524
  deployed: DeployedModel[];
1035
1525
  trained: TrainedModel[];
1526
+ projects: ProjectResponse[];
1036
1527
  }
1037
1528
 
1038
1529
  export async function listAllModels(): Promise<ApiResult<AllModelsResponse>> {
1039
- const [deployedResult, trainedResult] = await Promise.all([
1530
+ const [deployedResult, trainedResult, projectsResult] = await Promise.all([
1040
1531
  listModels(),
1041
1532
  listTrainedModels(),
1533
+ listProjects(),
1042
1534
  ]);
1043
1535
 
1044
1536
  if (!deployedResult.ok) {
@@ -1047,6 +1539,9 @@ export async function listAllModels(): Promise<ApiResult<AllModelsResponse>> {
1047
1539
  if (!trainedResult.ok) {
1048
1540
  return { ok: false, status: trainedResult.status, error: trainedResult.error };
1049
1541
  }
1542
+ if (!projectsResult.ok) {
1543
+ return { ok: false, status: projectsResult.status, error: projectsResult.error };
1544
+ }
1050
1545
 
1051
1546
  return {
1052
1547
  ok: true,
@@ -1054,12 +1549,18 @@ export async function listAllModels(): Promise<ApiResult<AllModelsResponse>> {
1054
1549
  data: {
1055
1550
  deployed: deployedResult.data?.models ?? [],
1056
1551
  trained: trainedResult.data?.training_jobs ?? [],
1552
+ projects: projectsResult.data?.projects ?? [],
1057
1553
  },
1058
1554
  };
1059
1555
  }
1060
1556
 
1061
1557
  export interface ModelDownloadResponse {
1558
+ success?: boolean;
1559
+ job_id?: string;
1062
1560
  download_url: string;
1561
+ expires_in_seconds?: number;
1562
+ file_name?: string;
1563
+ message?: string;
1063
1564
  }
1064
1565
 
1065
1566
  export async function downloadModel(
@@ -1072,64 +1573,583 @@ export async function downloadModel(
1072
1573
  }
1073
1574
 
1074
1575
  // ─────────────────────────────────────────────────────────────────────────────
1075
- // Evaluations
1576
+ // Inference
1076
1577
  // ─────────────────────────────────────────────────────────────────────────────
1077
1578
 
1078
- export interface Evaluation {
1079
- id: string;
1080
- user_id: string;
1081
- project_id?: string;
1579
+ export interface EncoderInferenceRequest {
1082
1580
  model_id: string;
1083
- dataset_name: string;
1084
- dataset_version: string;
1085
- provider?: string;
1086
- model_name?: string;
1087
- f1_score?: number;
1088
- precision_score?: number;
1089
- recall_score?: number;
1090
- accuracy?: number;
1091
- validation_loss?: number;
1092
- total_tokens?: number;
1093
- total_cost_usd?: number;
1094
- total_latency_ms?: number;
1095
- max_examples?: number;
1096
- seed?: number;
1097
- sample_count?: number;
1098
- evaluation_time_ms?: number;
1099
- status: string;
1100
- job_reference?: string;
1101
- error_message?: string;
1102
- created_at: string;
1103
- completed_at?: string;
1581
+ task: "extract_entities" | "classify_text" | "extract_json" | "schema";
1582
+ text: string | string[];
1583
+ schema: string[] | Record<string, unknown>;
1584
+ threshold?: number;
1585
+ include_confidence?: boolean;
1586
+ include_spans?: boolean;
1587
+ format_results?: boolean;
1588
+ is_warmup?: boolean;
1589
+ store?: boolean;
1590
+ project_id?: string;
1104
1591
  }
1105
1592
 
1106
- export interface EvaluationListResponse {
1107
- success: boolean;
1108
- evaluations: Evaluation[];
1109
- count: number;
1593
+ export interface InferenceMessage {
1594
+ role: "system" | "user" | "assistant";
1595
+ content: string;
1110
1596
  }
1111
1597
 
1112
- export async function listEvaluations(): Promise<
1113
- ApiResult<EvaluationListResponse>
1114
- > {
1115
- return request<EvaluationListResponse>("GET", "/felix/evaluations");
1598
+ export interface GenerateInferenceRequest {
1599
+ model_id: string;
1600
+ task: "generate";
1601
+ messages: InferenceMessage[];
1602
+ max_tokens?: number;
1603
+ temperature?: number;
1604
+ top_p?: number;
1605
+ include_reasoning_trace?: boolean;
1606
+ is_warmup?: boolean;
1607
+ store?: boolean;
1608
+ project_id?: string;
1116
1609
  }
1117
1610
 
1118
- export async function getEvaluation(
1119
- evalId: string
1120
- ): Promise<ApiResult<Evaluation>> {
1121
- return request<Evaluation>("GET", `/felix/evaluations/${evalId}`);
1611
+ export type InferenceRequest = EncoderInferenceRequest | GenerateInferenceRequest;
1612
+
1613
+ export interface EncoderInferenceResponse {
1614
+ type: "encoder";
1615
+ inference_id: string;
1616
+ result: Record<string, unknown> | unknown[];
1617
+ model_id: string;
1618
+ latency_ms: number;
1619
+ token_usage: number;
1620
+ model_used: string;
1122
1621
  }
1123
1622
 
1124
- export interface EvaluationCreateRequest {
1125
- dataset: DatasetRef;
1623
+ export interface GenerateInferenceResponse {
1624
+ type: "decoder";
1625
+ inference_id: string;
1626
+ completion: string;
1627
+ reasoning_trace?: string | null;
1126
1628
  model_id: string;
1127
- dataset_names?: string[];
1128
- provider?: "felix" | "openai" | "together";
1129
- max_examples?: number;
1130
- seed?: number;
1131
- task_type?: string;
1132
- text_column?: string;
1629
+ latency_ms: number;
1630
+ }
1631
+
1632
+ export type InferenceResponse = EncoderInferenceResponse | GenerateInferenceResponse;
1633
+
1634
+ export async function runInference(
1635
+ req: InferenceRequest
1636
+ ): Promise<ApiResult<InferenceResponse>> {
1637
+ return request<InferenceResponse>("POST", "/inference", req);
1638
+ }
1639
+
1640
+ export interface TextCompletionRequest {
1641
+ model: string;
1642
+ prompt: string;
1643
+ temperature?: number;
1644
+ max_tokens?: number;
1645
+ stop?: string[] | string;
1646
+ echo?: boolean;
1647
+ extra_body?: Record<string, unknown>;
1648
+ }
1649
+
1650
+ export interface TextCompletionUsage {
1651
+ prompt_tokens: number;
1652
+ completion_tokens: number;
1653
+ total_tokens: number;
1654
+ }
1655
+
1656
+ export interface TextCompletionChoice {
1657
+ index?: number;
1658
+ text: string;
1659
+ finish_reason?: string | null;
1660
+ }
1661
+
1662
+ export interface TextCompletionResponse {
1663
+ id?: string;
1664
+ object?: string;
1665
+ created?: number;
1666
+ model: string;
1667
+ choices: TextCompletionChoice[];
1668
+ usage: TextCompletionUsage;
1669
+ }
1670
+
1671
+ export async function runTextCompletion(
1672
+ req: TextCompletionRequest
1673
+ ): Promise<ApiResult<TextCompletionResponse>> {
1674
+ return request<TextCompletionResponse>("POST", "/v1/completions", req);
1675
+ }
1676
+
1677
+ export interface BaseModelInfo {
1678
+ id: string;
1679
+ name?: string;
1680
+ label?: string;
1681
+ type?: "encoder" | "decoder" | string;
1682
+ task_type?: string;
1683
+ supports_inference?: boolean;
1684
+ supports_on_demand_inference?: boolean;
1685
+ supports_training?: boolean;
1686
+ description?: string;
1687
+ }
1688
+
1689
+ export interface BaseModelsResponse {
1690
+ models: BaseModelInfo[];
1691
+ }
1692
+
1693
+ export async function listBaseModels(): Promise<
1694
+ ApiResult<BaseModelsResponse | BaseModelInfo[]>
1695
+ > {
1696
+ return request<BaseModelsResponse | BaseModelInfo[]>("GET", "/base-models");
1697
+ }
1698
+
1699
+ // ─────────────────────────────────────────────────────────────────────────────
1700
+ // Agent chat
1701
+ // ─────────────────────────────────────────────────────────────────────────────
1702
+
1703
+ export interface AgentChatHistoryItem {
1704
+ role: "user" | "assistant" | "system" | string;
1705
+ content: string;
1706
+ }
1707
+
1708
+ export interface ChatSessionMessage {
1709
+ id?: string;
1710
+ session_id?: string;
1711
+ role: string;
1712
+ content: string;
1713
+ message_index?: number;
1714
+ created_at?: string;
1715
+ tool_call_id?: string | null;
1716
+ tool_calls?: Array<{
1717
+ id?: string;
1718
+ name?: string;
1719
+ args?: Record<string, unknown>;
1720
+ }> | null;
1721
+ images?: Array<Record<string, unknown>> | null;
1722
+ }
1723
+
1724
+ export interface ChatSessionResponse {
1725
+ id: string;
1726
+ user_id: string;
1727
+ title: string;
1728
+ created_at: string;
1729
+ updated_at: string;
1730
+ is_archived: boolean;
1731
+ project_id: string | null;
1732
+ modal_sandbox_id: string | null;
1733
+ raw_message_tree_present?: boolean;
1734
+ messages: ChatSessionMessage[];
1735
+ }
1736
+
1737
+ export interface CreateChatSessionRequest {
1738
+ first_message?: string;
1739
+ title?: string;
1740
+ project_id?: string;
1741
+ }
1742
+
1743
+ export interface UpdateChatSessionRequest {
1744
+ title?: string;
1745
+ is_archived?: boolean;
1746
+ }
1747
+
1748
+ export interface AppendSessionMessagesRequest {
1749
+ messages: Array<{
1750
+ role: string;
1751
+ content: string;
1752
+ tool_call_id?: string;
1753
+ tool_calls?: Array<{
1754
+ id?: string;
1755
+ name?: string;
1756
+ args?: Record<string, unknown>;
1757
+ [key: string]: unknown;
1758
+ }>;
1759
+ }>;
1760
+ }
1761
+
1762
+ export interface ChatSessionListResponse {
1763
+ success: boolean;
1764
+ sessions: Array<Pick<ChatSessionResponse, "id" | "user_id" | "title" | "created_at" | "updated_at" | "is_archived">>;
1765
+ }
1766
+
1767
+ export interface AgentChatRequest {
1768
+ message: string;
1769
+ conversation_id?: string;
1770
+ history?: AgentChatHistoryItem[];
1771
+ resume_value?: string;
1772
+ }
1773
+
1774
+ export interface AgentChatResponse {
1775
+ answer: string;
1776
+ conversation_id: string;
1777
+ tool_calls_made?: number;
1778
+ }
1779
+
1780
+ export interface AutoAgentRun {
1781
+ agent_run_id: string;
1782
+ status: string;
1783
+ created_at?: string;
1784
+ updated_at?: string;
1785
+ project_id?: string;
1786
+ model_id?: string;
1787
+ result_url?: string;
1788
+ run_type?: string;
1789
+ [key: string]: unknown;
1790
+ }
1791
+
1792
+ export async function agentChat(
1793
+ req: AgentChatRequest
1794
+ ): Promise<ApiResult<AgentChatResponse>> {
1795
+ const baseUrl = getBaseUrl().replace(/\/$/, "");
1796
+ const apiKey = getApiKey();
1797
+ const url = `${baseUrl}/auto-agent/clarify`;
1798
+ const headers: Record<string, string> = {
1799
+ "Content-Type": "application/json",
1800
+ "User-Agent": "pioneer-cli/0.1.0",
1801
+ };
1802
+
1803
+ if (apiKey) {
1804
+ headers["X-API-Key"] = apiKey;
1805
+ }
1806
+
1807
+ try {
1808
+ const res = await fetch(url, {
1809
+ method: "POST",
1810
+ headers,
1811
+ body: JSON.stringify(req),
1812
+ });
1813
+
1814
+ const text = await res.text();
1815
+
1816
+ let parsedJson: unknown;
1817
+ try {
1818
+ parsedJson = JSON.parse(text);
1819
+ } catch {
1820
+ // Ignore; some responses may be SSE/event text or empty.
1821
+ }
1822
+
1823
+ const parseAgentStream = (raw: string): AgentChatResponse | undefined => {
1824
+ const direct = parseAgentPayload(raw);
1825
+ if (direct) return direct;
1826
+
1827
+ const events = raw
1828
+ .split("\n")
1829
+ .map((line) => line.trim())
1830
+ .filter((line) => line.startsWith("data:"));
1831
+ const fallback: AgentChatResponse = {
1832
+ answer: "",
1833
+ conversation_id: "",
1834
+ };
1835
+
1836
+ for (const eventLine of events) {
1837
+ const payload = eventLine.slice(5).trim();
1838
+ if (!payload) continue;
1839
+
1840
+ let event: Record<string, unknown> | undefined;
1841
+ try {
1842
+ event = JSON.parse(payload);
1843
+ } catch {
1844
+ continue;
1845
+ }
1846
+ if (typeof event === "object" && event) {
1847
+ const type = typeof event.type === "string" ? event.type : undefined;
1848
+
1849
+ if (type === "delta" && typeof event.content === "string") {
1850
+ fallback.answer += event.content;
1851
+ }
1852
+
1853
+ if (typeof event.content === "string" && !fallback.answer) {
1854
+ fallback.answer = event.content;
1855
+ }
1856
+
1857
+ if (typeof event.answer === "string") {
1858
+ fallback.answer = event.answer;
1859
+ }
1860
+
1861
+ if (typeof event.conversation_id === "string") {
1862
+ fallback.conversation_id = event.conversation_id;
1863
+ }
1864
+
1865
+ if (typeof event.tool_calls_made === "number") {
1866
+ fallback.tool_calls_made = event.tool_calls_made;
1867
+ }
1868
+
1869
+ if (type === "complete") {
1870
+ if (typeof event.conversation_id === "string") {
1871
+ fallback.conversation_id = event.conversation_id;
1872
+ }
1873
+ if (typeof event.answer === "string") {
1874
+ fallback.answer = event.answer;
1875
+ }
1876
+ }
1877
+ }
1878
+ }
1879
+
1880
+ if (fallback.answer || fallback.conversation_id) {
1881
+ return fallback;
1882
+ }
1883
+ return undefined;
1884
+ };
1885
+
1886
+ const parseAgentPayload = (raw: string): AgentChatResponse | undefined => {
1887
+ if (!raw.trim()) {
1888
+ return undefined;
1889
+ }
1890
+ if (typeof parsedJson !== "object" || parsedJson === null) {
1891
+ return undefined;
1892
+ }
1893
+
1894
+ const payload = parsedJson as Record<string, unknown>;
1895
+ const answer = typeof payload.answer === "string" ? payload.answer : "";
1896
+ const conversationId =
1897
+ typeof payload.answer === "string" && typeof payload.conversation_id === "string"
1898
+ ? payload.conversation_id
1899
+ : typeof payload.conversation_id === "string"
1900
+ ? payload.conversation_id
1901
+ : "";
1902
+
1903
+ if (!answer && !conversationId && typeof payload.detail !== "string") {
1904
+ return undefined;
1905
+ }
1906
+
1907
+ return {
1908
+ answer,
1909
+ conversation_id: conversationId,
1910
+ ...(typeof payload.tool_calls_made === "number"
1911
+ ? { tool_calls_made: payload.tool_calls_made }
1912
+ : {}),
1913
+ };
1914
+ };
1915
+
1916
+ const parsedResponse = parseAgentStream(text);
1917
+
1918
+ if (!res.ok) {
1919
+ const rawError = parsedJson ? JSON.stringify(parsedJson) : text || `HTTP ${res.status}`;
1920
+ const extractedError = extractErrorMessage(parsedJson) || text || `HTTP ${res.status}`;
1921
+ if (isAuthError(res.status, rawError)) {
1922
+ return {
1923
+ ok: false,
1924
+ status: res.status,
1925
+ error: formatAuthError(extractedError),
1926
+ };
1927
+ }
1928
+ return {
1929
+ ok: false,
1930
+ status: res.status,
1931
+ error: extractedError,
1932
+ };
1933
+ }
1934
+
1935
+ if (parsedResponse) {
1936
+ return { ok: true, status: res.status, data: parsedResponse };
1937
+ }
1938
+
1939
+ return {
1940
+ ok: true,
1941
+ status: res.status,
1942
+ data: {
1943
+ answer: text || "",
1944
+ conversation_id: "",
1945
+ },
1946
+ };
1947
+ } catch (err) {
1948
+ return {
1949
+ ok: false,
1950
+ status: 0,
1951
+ error: err instanceof Error ? err.message : String(err),
1952
+ };
1953
+ }
1954
+ }
1955
+
1956
+ // Agent session persistence APIs (Pioneer MLE agent)
1957
+ export async function createAgentSession(
1958
+ req: CreateChatSessionRequest
1959
+ ): Promise<ApiResult<ChatSessionResponse>> {
1960
+ return request<ChatSessionResponse>("POST", "/mle-agent/sessions", req);
1961
+ }
1962
+
1963
+ export async function getAgentSession(
1964
+ sessionId: string
1965
+ ): Promise<ApiResult<ChatSessionResponse>> {
1966
+ return request<ChatSessionResponse>("GET", `/mle-agent/sessions/${sessionId}`);
1967
+ }
1968
+
1969
+ export async function listAgentSessions(): Promise<ApiResult<ChatSessionListResponse>> {
1970
+ return request<ChatSessionListResponse>("GET", "/mle-agent/sessions");
1971
+ }
1972
+
1973
+ export async function appendSessionMessages(
1974
+ sessionId: string,
1975
+ req: AppendSessionMessagesRequest
1976
+ ): Promise<ApiResult<{ success: boolean; session_id: string; messages_added: number }>> {
1977
+ return request<{ success: boolean; session_id: string; messages_added: number }>(
1978
+ "POST",
1979
+ `/mle-agent/sessions/${sessionId}/messages`,
1980
+ req
1981
+ );
1982
+ }
1983
+
1984
+ export async function updateAgentSession(
1985
+ sessionId: string,
1986
+ req: UpdateChatSessionRequest
1987
+ ): Promise<ApiResult<ChatSessionResponse>> {
1988
+ return request<ChatSessionResponse>("PATCH", `/mle-agent/sessions/${sessionId}`, req);
1989
+ }
1990
+
1991
+ export async function deleteAgentSession(sessionId: string): Promise<ApiResult<{ success: boolean }>> {
1992
+ return request<{ success: boolean }>("DELETE", `/mle-agent/sessions/${sessionId}`);
1993
+ }
1994
+
1995
+ export async function listAutoAgentRuns(
1996
+ limit = 20,
1997
+ offset = 0
1998
+ ): Promise<ApiResult<{ runs: AutoAgentRun[] }>> {
1999
+ return request<{ runs: AutoAgentRun[] }>(
2000
+ "GET",
2001
+ `/auto-agent/runs?limit=${limit}&offset=${offset}`
2002
+ );
2003
+ }
2004
+
2005
+ export async function getAutoAgentRun(
2006
+ runId: string
2007
+ ): Promise<ApiResult<AutoAgentRun>> {
2008
+ return request<AutoAgentRun>("GET", `/auto-agent/run/${runId}`);
2009
+ }
2010
+
2011
+ export async function stopAutoAgentRun(
2012
+ runId: string
2013
+ ): Promise<ApiResult<{ success: boolean }>> {
2014
+ return request<{ success: boolean }>("POST", `/auto-agent/run/${runId}/stop`);
2015
+ }
2016
+
2017
+ // ─────────────────────────────────────────────────────────────────────────────
2018
+ // Decoder Generation
2019
+ // ─────────────────────────────────────────────────────────────────────────────
2020
+
2021
+ export interface GenerateDecoderRequest {
2022
+ domain_description: string;
2023
+ instruction?: string;
2024
+ num_examples?: number;
2025
+ temperature?: number;
2026
+ generation_profile?: "auto" | "fast" | "balanced" | "quality";
2027
+ quality?: "light" | "medium" | "heavy";
2028
+ include_reasoning_trace?: boolean;
2029
+ reasoning_effort?: "low" | "medium" | "high";
2030
+ constraints?: ConstraintRequest[];
2031
+ save_dataset?: boolean;
2032
+ dataset_name?: string;
2033
+ project_id?: string;
2034
+ use_meta_felix?: boolean;
2035
+ session_id?: string;
2036
+ config_num_examples?: number;
2037
+ min_criteria?: number;
2038
+ target_choices?: number;
2039
+ split_ratio?: Record<string, number>;
2040
+ negative_ratio?: number;
2041
+ multiplicator?: Record<string, unknown>;
2042
+ type?: "training" | "evaluation" | "split";
2043
+ visibility?: "private" | "public";
2044
+ }
2045
+
2046
+ export async function generateDecoder(
2047
+ req: GenerateDecoderRequest
2048
+ ): Promise<ApiResult<GenerateJobStatus>> {
2049
+ return generateDataset({
2050
+ task_type: "decoder",
2051
+ dataset_name: req.dataset_name ?? makeDefaultDatasetName("decoder"),
2052
+ domain_description: req.domain_description,
2053
+ instruction: req.instruction,
2054
+ num_examples: req.num_examples,
2055
+ temperature: req.temperature,
2056
+ generation_profile: req.generation_profile,
2057
+ quality: req.quality,
2058
+ constraints: req.constraints,
2059
+ project_id: req.project_id,
2060
+ include_reasoning_trace: req.include_reasoning_trace,
2061
+ reasoning_effort: req.reasoning_effort,
2062
+ use_meta_felix: req.use_meta_felix,
2063
+ session_id: req.session_id,
2064
+ config_num_examples: req.config_num_examples,
2065
+ min_criteria: req.min_criteria,
2066
+ target_choices: req.target_choices,
2067
+ split_ratio: req.split_ratio,
2068
+ negative_ratio: req.negative_ratio,
2069
+ multiplicator: req.multiplicator,
2070
+ type: req.type,
2071
+ visibility: req.visibility,
2072
+ });
2073
+ }
2074
+
2075
+ // ─────────────────────────────────────────────────────────────────────────────
2076
+ // Evaluations
2077
+ // ─────────────────────────────────────────────────────────────────────────────
2078
+
2079
+ export interface BaselineModel {
2080
+ id: string;
2081
+ name: string;
2082
+ provider: string;
2083
+ description: string;
2084
+ }
2085
+
2086
+ export interface BaselineModelsResponse {
2087
+ success: boolean;
2088
+ models: BaselineModel[];
2089
+ count: number;
2090
+ }
2091
+
2092
+ export async function listBaselineModels(): Promise<ApiResult<BaselineModelsResponse>> {
2093
+ return request<BaselineModelsResponse>("GET", "/felix/baseline-models");
2094
+ }
2095
+
2096
+ export interface Evaluation {
2097
+ id: string;
2098
+ user_id: string;
2099
+ project_id?: string;
2100
+ model_id: string;
2101
+ dataset_name: string;
2102
+ dataset_version: string;
2103
+ provider?: string;
2104
+ model_name?: string;
2105
+ f1_score?: number;
2106
+ precision_score?: number;
2107
+ recall_score?: number;
2108
+ accuracy?: number;
2109
+ validation_loss?: number;
2110
+ total_tokens?: number;
2111
+ total_cost_usd?: number;
2112
+ total_latency_ms?: number;
2113
+ max_examples?: number;
2114
+ seed?: number;
2115
+ sample_count?: number;
2116
+ evaluation_time_ms?: number;
2117
+ status: string;
2118
+ job_reference?: string;
2119
+ error_message?: string;
2120
+ created_at: string;
2121
+ completed_at?: string;
2122
+ }
2123
+
2124
+ export interface EvaluationListResponse {
2125
+ success: boolean;
2126
+ evaluations: Evaluation[];
2127
+ count: number;
2128
+ }
2129
+
2130
+ export async function listEvaluations(): Promise<
2131
+ ApiResult<EvaluationListResponse>
2132
+ > {
2133
+ return request<EvaluationListResponse>("GET", "/felix/evaluations");
2134
+ }
2135
+
2136
+ export async function getEvaluation(
2137
+ evalId: string
2138
+ ): Promise<ApiResult<Evaluation>> {
2139
+ return request<Evaluation>("GET", `/felix/evaluations/${evalId}`);
2140
+ }
2141
+
2142
+ export interface EvaluationCreateRequest {
2143
+ dataset: DatasetRef;
2144
+ model_id: string;
2145
+ base_model?: string;
2146
+ comparison_models?: string[];
2147
+ dataset_names?: string[];
2148
+ provider?: "felix" | "openai" | "together";
2149
+ max_examples?: number;
2150
+ seed?: number;
2151
+ task_type?: string;
2152
+ text_column?: string;
1133
2153
  label_column?: string;
1134
2154
  project_id?: string;
1135
2155
  }
@@ -1144,8 +2164,10 @@ export async function createEvaluation(
1144
2164
  req: EvaluationCreateRequest
1145
2165
  ): Promise<ApiResult<EvaluationCreateResponse>> {
1146
2166
  const { dataset, ...rest } = req;
2167
+ const baseModel = req.base_model ?? req.model_id;
1147
2168
  return request<EvaluationCreateResponse>("POST", "/felix/evaluations", {
1148
2169
  ...rest,
2170
+ base_model: baseModel,
1149
2171
  dataset_name: dataset.name,
1150
2172
  dataset_version: dataset.version,
1151
2173
  });
@@ -1176,6 +2198,37 @@ export async function getDatasetEvaluations(
1176
2198
  );
1177
2199
  }
1178
2200
 
2201
+ export interface DeleteEvaluationResponse {
2202
+ success: boolean;
2203
+ message: string;
2204
+ }
2205
+
2206
+ export async function deleteEvaluation(
2207
+ evaluationId: string
2208
+ ): Promise<ApiResult<DeleteEvaluationResponse>> {
2209
+ return request<DeleteEvaluationResponse>("DELETE", `/felix/evaluations/${evaluationId}`);
2210
+ }
2211
+
2212
+ export interface UpdateEvaluationProjectRequest {
2213
+ evaluation_id: string;
2214
+ project_id?: string;
2215
+ }
2216
+
2217
+ export interface UpdateEvaluationProjectResponse {
2218
+ success: boolean;
2219
+ message: string;
2220
+ }
2221
+
2222
+ export async function updateEvaluationProject(
2223
+ req: UpdateEvaluationProjectRequest
2224
+ ): Promise<ApiResult<UpdateEvaluationProjectResponse>> {
2225
+ return request<UpdateEvaluationProjectResponse>(
2226
+ "PATCH",
2227
+ `/felix/evaluations/${req.evaluation_id}/project`,
2228
+ { project_id: req.project_id }
2229
+ );
2230
+ }
2231
+
1179
2232
  // ─────────────────────────────────────────────────────────────────────────────
1180
2233
  // Benchmarks
1181
2234
  // ─────────────────────────────────────────────────────────────────────────────
@@ -1295,6 +2348,26 @@ export async function scanForPHD(
1295
2348
  });
1296
2349
  }
1297
2350
 
2351
+ export interface DataEditingDismissOutlierRequest {
2352
+ dataset: DatasetRef;
2353
+ fingerprint: string;
2354
+ }
2355
+
2356
+ export interface DataEditingDismissOutlierResponse {
2357
+ success: boolean;
2358
+ }
2359
+
2360
+ export async function dismissOutlier(
2361
+ req: DataEditingDismissOutlierRequest
2362
+ ): Promise<ApiResult<DataEditingDismissOutlierResponse>> {
2363
+ const { dataset, ...rest } = req;
2364
+ return request<DataEditingDismissOutlierResponse>("POST", "/felix/dataset/outliers/dismiss", {
2365
+ ...rest,
2366
+ dataset_name: dataset.name,
2367
+ dataset_version: dataset.version,
2368
+ });
2369
+ }
2370
+
1298
2371
  export interface DataEditingRemoveRequest {
1299
2372
  dataset: DatasetRef;
1300
2373
  findings: PIIFinding[];
@@ -1694,6 +2767,148 @@ export async function listActivity(
1694
2767
  return request<ActivityLogResponse>("GET", url);
1695
2768
  }
1696
2769
 
2770
+ // ─────────────────────────────────────────────────────────────────────────────
2771
+ // Projects
2772
+ // ─────────────────────────────────────────────────────────────────────────────
2773
+
2774
+ export interface ProjectCreateRequest {
2775
+ name?: string;
2776
+ icon?: string;
2777
+ repo?: string;
2778
+ description?: string;
2779
+ active_model_id?: string;
2780
+ selected_model_id?: string;
2781
+ example?: Record<string, unknown>;
2782
+ }
2783
+
2784
+ export interface ProjectUpdateRequest {
2785
+ name?: string;
2786
+ icon?: string;
2787
+ repo?: string;
2788
+ description?: string;
2789
+ selected_model_id?: string;
2790
+ }
2791
+
2792
+ export interface ProjectResponse {
2793
+ id: string;
2794
+ user_id: string;
2795
+ name: string;
2796
+ icon?: string;
2797
+ repo?: string;
2798
+ description?: string;
2799
+ selected_model_id?: string;
2800
+ example?: Record<string, unknown>;
2801
+ created_at: string;
2802
+ updated_at: string;
2803
+ }
2804
+
2805
+ export interface ProjectListResponse {
2806
+ success: boolean;
2807
+ projects: ProjectResponse[];
2808
+ count: number;
2809
+ }
2810
+
2811
+ export interface ProjectDeleteResponse {
2812
+ success: boolean;
2813
+ message: string;
2814
+ project_id: string;
2815
+ }
2816
+
2817
+ export interface ProjectDeploymentCreate {
2818
+ training_job_id: string;
2819
+ reason?: string;
2820
+ }
2821
+
2822
+ export interface ProjectDeploymentResponse {
2823
+ success: boolean;
2824
+ message?: string;
2825
+ project_id?: string;
2826
+ training_job_id?: string;
2827
+ deployment_id?: string;
2828
+ }
2829
+
2830
+ export interface ProjectDatasetCountResponse {
2831
+ project_id: string;
2832
+ dataset_count: number;
2833
+ can_delete: boolean;
2834
+ }
2835
+
2836
+ export interface QualityMetricsResponse {
2837
+ project_id: string;
2838
+ pass_count: number;
2839
+ fail_count: number;
2840
+ uncertain_count: number;
2841
+ total_judged: number;
2842
+ pass_rate: number;
2843
+ fail_rate: number;
2844
+ }
2845
+
2846
+ export async function listProjects(): Promise<ApiResult<ProjectListResponse>> {
2847
+ return request<ProjectListResponse>("GET", "/projects");
2848
+ }
2849
+
2850
+ export async function createProject(
2851
+ req: ProjectCreateRequest
2852
+ ): Promise<ApiResult<ProjectResponse>> {
2853
+ return request<ProjectResponse>("POST", "/projects", req);
2854
+ }
2855
+
2856
+ export async function getProject(projectId: string): Promise<ApiResult<ProjectResponse>> {
2857
+ return request<ProjectResponse>("GET", `/projects/${projectId}`);
2858
+ }
2859
+
2860
+ export async function updateProject(
2861
+ projectId: string,
2862
+ req: ProjectUpdateRequest
2863
+ ): Promise<ApiResult<ProjectResponse>> {
2864
+ return request<ProjectResponse>("PATCH", `/projects/${projectId}`, req);
2865
+ }
2866
+
2867
+ export async function deleteProject(
2868
+ projectId: string
2869
+ ): Promise<ApiResult<ProjectDeleteResponse>> {
2870
+ return request<ProjectDeleteResponse>("DELETE", `/projects/${projectId}`);
2871
+ }
2872
+
2873
+ export async function getProjectDatasetCount(
2874
+ projectId: string
2875
+ ): Promise<ApiResult<ProjectDatasetCountResponse>> {
2876
+ return request<ProjectDatasetCountResponse>(
2877
+ "GET",
2878
+ `/projects/${projectId}/dataset-count`
2879
+ );
2880
+ }
2881
+
2882
+ export async function getProjectQualityMetrics(
2883
+ projectId: string
2884
+ ): Promise<ApiResult<QualityMetricsResponse>> {
2885
+ return request<QualityMetricsResponse>(
2886
+ "GET",
2887
+ `/projects/${projectId}/quality-metrics`
2888
+ );
2889
+ }
2890
+
2891
+ export async function deployTrainingJobToProject(
2892
+ projectId: string,
2893
+ req: ProjectDeploymentCreate
2894
+ ): Promise<ApiResult<ProjectDeploymentResponse>> {
2895
+ return request<ProjectDeploymentResponse>(
2896
+ "POST",
2897
+ `/projects/${projectId}/deployments`,
2898
+ req
2899
+ );
2900
+ }
2901
+
2902
+ export async function rollbackProjectDeployment(
2903
+ projectId: string,
2904
+ deploymentId: string
2905
+ ): Promise<ApiResult<ProjectDeploymentResponse>> {
2906
+ return request<ProjectDeploymentResponse>(
2907
+ "POST",
2908
+ `/projects/${projectId}/deployments/${deploymentId}/rollback`
2909
+ );
2910
+ }
2911
+
1697
2912
  // ─────────────────────────────────────────────────────────────────────────────
1698
2913
  // Presets
1699
2914
  // ─────────────────────────────────────────────────────────────────────────────
@@ -1869,100 +3084,3 @@ export async function endAnnotationSession(
1869
3084
  );
1870
3085
  }
1871
3086
 
1872
- // ─────────────────────────────────────────────────────────────────────────────
1873
- // Leaderboard / Competitions
1874
- // ─────────────────────────────────────────────────────────────────────────────
1875
-
1876
- export interface LeaderboardEntry {
1877
- id: string;
1878
- dataset_id: string;
1879
- evaluation_id: string;
1880
- user_id: string;
1881
- display_name: string;
1882
- model_name: string;
1883
- model_id?: string;
1884
- f1_score: number;
1885
- precision_score?: number;
1886
- recall_score?: number;
1887
- accuracy?: number;
1888
- created_at: string;
1889
- updated_at: string;
1890
- rank?: number;
1891
- }
1892
-
1893
- export interface CompetitionInfo {
1894
- dataset_id: string;
1895
- dataset_name: string;
1896
- dataset_type: string;
1897
- description?: string;
1898
- sample_count?: number;
1899
- labels?: string[];
1900
- sample_rows?: Record<string, unknown>[];
1901
- winner?: LeaderboardEntry;
1902
- total_entries: number;
1903
- }
1904
-
1905
- export interface CompetitionsResponse {
1906
- success: boolean;
1907
- competitions: CompetitionInfo[];
1908
- }
1909
-
1910
- export interface CompetitionSamplesResponse {
1911
- dataset_id: string;
1912
- sample_rows: Record<string, unknown>[];
1913
- }
1914
-
1915
- export interface LeaderboardEntriesResponse {
1916
- success: boolean;
1917
- dataset_id: string;
1918
- dataset_name: string;
1919
- entries: LeaderboardEntry[];
1920
- total_entries: number;
1921
- }
1922
-
1923
- export interface LeaderboardSubmission {
1924
- evaluation_id: string;
1925
- display_name: string;
1926
- }
1927
-
1928
- export interface LeaderboardSubmitResponse {
1929
- success: boolean;
1930
- entry: LeaderboardEntry;
1931
- rank: number;
1932
- is_new_best: boolean;
1933
- }
1934
-
1935
- export async function listCompetitions(): Promise<ApiResult<CompetitionsResponse>> {
1936
- return request<CompetitionsResponse>("GET", "/leaderboard/competitions");
1937
- }
1938
-
1939
- export async function getCompetitionSamples(
1940
- datasetId: string
1941
- ): Promise<ApiResult<CompetitionSamplesResponse>> {
1942
- return request<CompetitionSamplesResponse>(
1943
- "GET",
1944
- `/leaderboard/competitions/${datasetId}/samples`
1945
- );
1946
- }
1947
-
1948
- export async function getLeaderboardEntries(
1949
- datasetId: string,
1950
- limit?: number
1951
- ): Promise<ApiResult<LeaderboardEntriesResponse>> {
1952
- const params = new URLSearchParams();
1953
- if (limit) params.set("limit", String(limit));
1954
- const query = params.toString();
1955
- const url = `/leaderboard/datasets/${datasetId}/entries${query ? `?${query}` : ""}`;
1956
- return request<LeaderboardEntriesResponse>("GET", url);
1957
- }
1958
-
1959
- export async function submitToLeaderboard(
1960
- datasetId: string,
1961
- submission: LeaderboardSubmission
1962
- ): Promise<ApiResult<LeaderboardSubmitResponse>> {
1963
- return request<LeaderboardSubmitResponse>(
1964
- "POST",
1965
- `/leaderboard/datasets/${datasetId}/submit`,
1966
- submission
1967
- );
1968
- }