@ggui-ai/ui-gen 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/dist/{adapter-h4_V69LI.d.ts → adapter-DLQ-5COm.d.ts} +1 -1
  2. package/dist/adapters/base.js +2 -27
  3. package/dist/adapters/base.js.map +1 -1
  4. package/dist/adapters/generation-dispatch.d.ts +14 -6
  5. package/dist/adapters/generation-dispatch.js +40 -19260
  6. package/dist/adapters/generation-dispatch.js.map +1 -1
  7. package/dist/adapters/index.d.ts +1 -1
  8. package/dist/adapters/index.js +25 -3561
  9. package/dist/adapters/index.js.map +1 -1
  10. package/dist/adapters/types.js +2 -9
  11. package/dist/adapters/types.js.map +1 -1
  12. package/dist/advanced/index.d.ts +13 -12
  13. package/dist/advanced/index.js +63 -21954
  14. package/dist/advanced/index.js.map +1 -1
  15. package/dist/{bank-Ctdp3FUA.d.ts → bank-LWaiAtaA.d.ts} +1 -1
  16. package/dist/blueprint-validator.js +6 -2301
  17. package/dist/blueprint-validator.js.map +1 -1
  18. package/dist/boilerplate.d.ts +3 -2
  19. package/dist/boilerplate.js +6 -1867
  20. package/dist/boilerplate.js.map +1 -1
  21. package/dist/check/index.d.ts +3 -2
  22. package/dist/check/index.js +6 -1923
  23. package/dist/check/index.js.map +1 -1
  24. package/dist/chunk-33B3BAWS.js +24 -0
  25. package/dist/chunk-33B3BAWS.js.map +1 -0
  26. package/dist/chunk-3HSGA6NI.js +591 -0
  27. package/dist/chunk-3HSGA6NI.js.map +1 -0
  28. package/dist/chunk-3NNNGNTO.js +1707 -0
  29. package/dist/chunk-3NNNGNTO.js.map +1 -0
  30. package/dist/chunk-3T2HMTON.js +79 -0
  31. package/dist/chunk-3T2HMTON.js.map +1 -0
  32. package/dist/chunk-3ZSSDV3L.js +123 -0
  33. package/dist/chunk-3ZSSDV3L.js.map +1 -0
  34. package/dist/chunk-4MBR5GA3.js +99 -0
  35. package/dist/chunk-4MBR5GA3.js.map +1 -0
  36. package/dist/chunk-56NJFD55.js +337 -0
  37. package/dist/chunk-56NJFD55.js.map +1 -0
  38. package/dist/chunk-5AGTY555.js +26 -0
  39. package/dist/chunk-5AGTY555.js.map +1 -0
  40. package/dist/chunk-5EJM7EGY.js +115 -0
  41. package/dist/chunk-5EJM7EGY.js.map +1 -0
  42. package/dist/chunk-5KXCQLLR.js +529 -0
  43. package/dist/chunk-5KXCQLLR.js.map +1 -0
  44. package/dist/chunk-5VBXHVEH.js +171 -0
  45. package/dist/chunk-5VBXHVEH.js.map +1 -0
  46. package/dist/chunk-6KDDEING.js +515 -0
  47. package/dist/chunk-6KDDEING.js.map +1 -0
  48. package/dist/chunk-6VDRWAP6.js +123 -0
  49. package/dist/chunk-6VDRWAP6.js.map +1 -0
  50. package/dist/chunk-732IBFEJ.js +2400 -0
  51. package/dist/chunk-732IBFEJ.js.map +1 -0
  52. package/dist/chunk-73AURS3I.js +46 -0
  53. package/dist/chunk-73AURS3I.js.map +1 -0
  54. package/dist/chunk-77H5SKLX.js +8 -0
  55. package/dist/chunk-77H5SKLX.js.map +1 -0
  56. package/dist/chunk-7QE3AHLE.js +35 -0
  57. package/dist/chunk-7QE3AHLE.js.map +1 -0
  58. package/dist/chunk-A375NNWN.js +11 -0
  59. package/dist/chunk-A375NNWN.js.map +1 -0
  60. package/dist/chunk-AOU33EFS.js +140 -0
  61. package/dist/chunk-AOU33EFS.js.map +1 -0
  62. package/dist/chunk-BA4QYA6E.js +461 -0
  63. package/dist/chunk-BA4QYA6E.js.map +1 -0
  64. package/dist/chunk-DBP764GL.js +3 -0
  65. package/dist/chunk-DBP764GL.js.map +1 -0
  66. package/dist/chunk-DUU3ZJDQ.js +41 -0
  67. package/dist/chunk-DUU3ZJDQ.js.map +1 -0
  68. package/dist/chunk-DXKRBXNU.js +30 -0
  69. package/dist/chunk-DXKRBXNU.js.map +1 -0
  70. package/dist/chunk-FB7OEEAH.js +1467 -0
  71. package/dist/chunk-FB7OEEAH.js.map +1 -0
  72. package/dist/chunk-FLRNMZV2.js +18 -0
  73. package/dist/chunk-FLRNMZV2.js.map +1 -0
  74. package/dist/chunk-FWJIMKFZ.js +2032 -0
  75. package/dist/chunk-FWJIMKFZ.js.map +1 -0
  76. package/dist/chunk-FXRHWYIQ.js +163 -0
  77. package/dist/chunk-FXRHWYIQ.js.map +1 -0
  78. package/dist/chunk-G3PMV62Z.js +33 -0
  79. package/dist/chunk-G3PMV62Z.js.map +1 -0
  80. package/dist/chunk-GAJI7Y3P.js +13 -0
  81. package/dist/chunk-GAJI7Y3P.js.map +1 -0
  82. package/dist/chunk-GYINWMPR.js +2052 -0
  83. package/dist/chunk-GYINWMPR.js.map +1 -0
  84. package/dist/chunk-HD6ABIK7.js +484 -0
  85. package/dist/chunk-HD6ABIK7.js.map +1 -0
  86. package/dist/chunk-HDQVHYO6.js +100 -0
  87. package/dist/chunk-HDQVHYO6.js.map +1 -0
  88. package/dist/chunk-IHUT3SIW.js +7 -0
  89. package/dist/chunk-IHUT3SIW.js.map +1 -0
  90. package/dist/chunk-JDH5EGNZ.js +126 -0
  91. package/dist/chunk-JDH5EGNZ.js.map +1 -0
  92. package/dist/chunk-JMD4RGSV.js +37 -0
  93. package/dist/chunk-JMD4RGSV.js.map +1 -0
  94. package/dist/chunk-KJWGZL5B.js +33 -0
  95. package/dist/chunk-KJWGZL5B.js.map +1 -0
  96. package/dist/chunk-MKMDQFZ7.js +86 -0
  97. package/dist/chunk-MKMDQFZ7.js.map +1 -0
  98. package/dist/chunk-NF6JUZWF.js +85 -0
  99. package/dist/chunk-NF6JUZWF.js.map +1 -0
  100. package/dist/chunk-O2YC6XDC.js +1933 -0
  101. package/dist/chunk-O2YC6XDC.js.map +1 -0
  102. package/dist/chunk-OVLH5ICV.js +29 -0
  103. package/dist/chunk-OVLH5ICV.js.map +1 -0
  104. package/dist/chunk-PBOYHGSD.js +106 -0
  105. package/dist/chunk-PBOYHGSD.js.map +1 -0
  106. package/dist/chunk-PJFH7QWA.js +81 -0
  107. package/dist/chunk-PJFH7QWA.js.map +1 -0
  108. package/dist/chunk-PUH4CXGZ.js +284 -0
  109. package/dist/chunk-PUH4CXGZ.js.map +1 -0
  110. package/dist/chunk-QLXXPGTV.js +18 -0
  111. package/dist/chunk-QLXXPGTV.js.map +1 -0
  112. package/dist/chunk-R5GIGPW2.js +2845 -0
  113. package/dist/chunk-R5GIGPW2.js.map +1 -0
  114. package/dist/chunk-RH4IUSTO.js +83 -0
  115. package/dist/chunk-RH4IUSTO.js.map +1 -0
  116. package/dist/chunk-S2GVXKKY.js +153 -0
  117. package/dist/chunk-S2GVXKKY.js.map +1 -0
  118. package/dist/chunk-TVHGKFJS.js +58 -0
  119. package/dist/chunk-TVHGKFJS.js.map +1 -0
  120. package/dist/chunk-U7GALWLG.js +66 -0
  121. package/dist/chunk-U7GALWLG.js.map +1 -0
  122. package/dist/chunk-VTC263LT.js +256 -0
  123. package/dist/chunk-VTC263LT.js.map +1 -0
  124. package/dist/chunk-WEOXFEVE.js +739 -0
  125. package/dist/chunk-WEOXFEVE.js.map +1 -0
  126. package/dist/chunk-WYHP46LT.js +28 -0
  127. package/dist/chunk-WYHP46LT.js.map +1 -0
  128. package/dist/chunk-XGLO5LGG.js +274 -0
  129. package/dist/chunk-XGLO5LGG.js.map +1 -0
  130. package/dist/chunk-XRBCRKA2.js +29 -0
  131. package/dist/chunk-XRBCRKA2.js.map +1 -0
  132. package/dist/chunk-XW7ADFFV.js +340 -0
  133. package/dist/chunk-XW7ADFFV.js.map +1 -0
  134. package/dist/chunk-YIQ42IUX.js +34 -0
  135. package/dist/chunk-YIQ42IUX.js.map +1 -0
  136. package/dist/chunk-YJZTUY7B.js +101 -0
  137. package/dist/chunk-YJZTUY7B.js.map +1 -0
  138. package/dist/chunk-Z3CXME3K.js +107 -0
  139. package/dist/chunk-Z3CXME3K.js.map +1 -0
  140. package/dist/classifier/index.js +2 -527
  141. package/dist/classifier/index.js.map +1 -1
  142. package/dist/client-JBPCXU7W.js +4 -0
  143. package/dist/client-JBPCXU7W.js.map +1 -0
  144. package/dist/compose.js +3 -367
  145. package/dist/compose.js.map +1 -1
  146. package/dist/cost-tracker-HHGQ4FTW.js +67 -0
  147. package/dist/cost-tracker-HHGQ4FTW.js.map +1 -0
  148. package/dist/{create-ui-generator-BrZHF0cf.d.ts → create-ui-generator-BY-WeaPi.d.ts} +3 -3
  149. package/dist/{design-mode-DGWN_Gkm.d.ts → design-mode-XyOQmzE0.d.ts} +4 -3
  150. package/dist/{dispatch-B07TI30d.d.ts → dispatch-8LzTddKw.d.ts} +3 -2
  151. package/dist/dist-UALN6ZVB.js +543 -0
  152. package/dist/dist-UALN6ZVB.js.map +1 -0
  153. package/dist/dupe-break-X6K7QFIS.js +4 -0
  154. package/dist/dupe-break-X6K7QFIS.js.map +1 -0
  155. package/dist/evaluation/axis-checks/index.d.ts +5 -4
  156. package/dist/evaluation/axis-checks/index.js +6 -1914
  157. package/dist/evaluation/axis-checks/index.js.map +1 -1
  158. package/dist/evaluation/axis-checks/registry.d.ts +3 -2
  159. package/dist/evaluation/axis-checks/registry.js +3 -1844
  160. package/dist/evaluation/axis-checks/registry.js.map +1 -1
  161. package/dist/evaluation/index.d.ts +49 -132
  162. package/dist/evaluation/index.js +302 -6466
  163. package/dist/evaluation/index.js.map +1 -1
  164. package/dist/evaluation/types.d.ts +3 -2
  165. package/dist/evaluation/types.js +2 -5
  166. package/dist/evaluation/types.js.map +1 -1
  167. package/dist/fragments/index.js +2 -338
  168. package/dist/fragments/index.js.map +1 -1
  169. package/dist/{generate-tSO_shQ0.d.ts → generate-DQ4ci90s.d.ts} +1 -1
  170. package/dist/harness/check/runtime-render/index.d.ts +35 -15
  171. package/dist/harness/check/runtime-render/index.js +6 -2390
  172. package/dist/harness/check/runtime-render/index.js.map +1 -1
  173. package/dist/harness/check/runtime-render/render-check-worker.js +4 -1739
  174. package/dist/harness/check/runtime-render/render-check-worker.js.map +1 -1
  175. package/dist/harness/index.d.ts +3 -2
  176. package/dist/harness/index.js +23 -5126
  177. package/dist/harness/index.js.map +1 -1
  178. package/dist/harness/llm-trace-sink.js +2 -24
  179. package/dist/harness/llm-trace-sink.js.map +1 -1
  180. package/dist/harness/prompts.d.ts +2 -2
  181. package/dist/harness/prompts.js +8 -324
  182. package/dist/harness/prompts.js.map +1 -1
  183. package/dist/harness/result-types.d.ts +6 -5
  184. package/dist/harness/result-types.js +2 -0
  185. package/dist/harness/result-types.js.map +1 -1
  186. package/dist/harness/runtime.d.ts +22 -5
  187. package/dist/harness/runtime.js +10 -2313
  188. package/dist/harness/runtime.js.map +1 -1
  189. package/dist/harness/types-public.d.ts +3 -2
  190. package/dist/harness/types-public.js +16 -2954
  191. package/dist/harness/types-public.js.map +1 -1
  192. package/dist/harness/validator-trace-sink.d.ts +3 -2
  193. package/dist/harness/validator-trace-sink.js +2 -26
  194. package/dist/harness/validator-trace-sink.js.map +1 -1
  195. package/dist/hash.js +2 -39
  196. package/dist/hash.js.map +1 -1
  197. package/dist/hashline-5OKREIRM.js +4 -0
  198. package/dist/hashline-5OKREIRM.js.map +1 -0
  199. package/dist/index.d.ts +50 -11
  200. package/dist/index.js +57 -22015
  201. package/dist/index.js.map +1 -1
  202. package/dist/llm-evaluator-PN3WFCS4.js +653 -0
  203. package/dist/llm-evaluator-PN3WFCS4.js.map +1 -0
  204. package/dist/magic-string.es-2NZTC4GZ.js +1307 -0
  205. package/dist/magic-string.es-2NZTC4GZ.js.map +1 -0
  206. package/dist/patch.d.ts +3 -2
  207. package/dist/patch.js +2 -56
  208. package/dist/patch.js.map +1 -1
  209. package/dist/policy-VCYKGSAC.js +5 -0
  210. package/dist/policy-VCYKGSAC.js.map +1 -0
  211. package/dist/policy.js +2 -35
  212. package/dist/policy.js.map +1 -1
  213. package/dist/primitive-index-2OF6F4TZ.js +131 -0
  214. package/dist/primitive-index-2OF6F4TZ.js.map +1 -0
  215. package/dist/primitive-slice-WTMBLYFJ.js +235 -0
  216. package/dist/primitive-slice-WTMBLYFJ.js.map +1 -0
  217. package/dist/{prompts-BhNUuRoZ.d.ts → prompts-CLZGywMP.d.ts} +1 -1
  218. package/dist/provider-adapter-contract.js +10407 -14204
  219. package/dist/provider-adapter-contract.js.map +1 -1
  220. package/dist/provider-adapter.js +2 -44
  221. package/dist/provider-adapter.js.map +1 -1
  222. package/dist/providers/index.d.ts +89 -1
  223. package/dist/providers/index.js +115 -44
  224. package/dist/providers/index.js.map +1 -1
  225. package/dist/raw-C6KBH5I3.js +141 -0
  226. package/dist/raw-C6KBH5I3.js.map +1 -0
  227. package/dist/raw-FXSBXQTZ.js +7 -0
  228. package/dist/raw-FXSBXQTZ.js.map +1 -0
  229. package/dist/raw-MURDUPGK.js +8 -0
  230. package/dist/raw-MURDUPGK.js.map +1 -0
  231. package/dist/raw-T3GW3UVX.js +8 -0
  232. package/dist/raw-T3GW3UVX.js.map +1 -0
  233. package/dist/render-check-host-ZNIS6BJ5.js +5 -0
  234. package/dist/render-check-host-ZNIS6BJ5.js.map +1 -0
  235. package/dist/sdk-4JNSDNSR.js +6 -0
  236. package/dist/sdk-4JNSDNSR.js.map +1 -0
  237. package/dist/sdk-DIVJMHCX.js +7 -0
  238. package/dist/sdk-DIVJMHCX.js.map +1 -0
  239. package/dist/sdk-QRJOCRTS.js +7 -0
  240. package/dist/sdk-QRJOCRTS.js.map +1 -0
  241. package/dist/tag-balance-CTHCTRJ7.js +123 -0
  242. package/dist/tag-balance-CTHCTRJ7.js.map +1 -0
  243. package/dist/tools/get-primitives-ts.d.ts +1 -1
  244. package/dist/tools/get-primitives-ts.js +3 -1
  245. package/dist/tools/get-primitives-ts.js.map +1 -1
  246. package/dist/tools/render-check-worker.js +3 -40
  247. package/dist/tools/render-check-worker.js.map +1 -1
  248. package/dist/{types-public-h8IMnYuh.d.ts → types-public-hYlrerZh.d.ts} +35 -2
  249. package/dist/validation/index.d.ts +2 -2
  250. package/dist/validation/index.js +3 -498
  251. package/dist/validation/index.js.map +1 -1
  252. package/dist/{visual-evaluator-C2strxqD.d.ts → visual-evaluator-KskajxD5.d.ts} +14 -4
  253. package/dist/visual-evaluator-TGEXYQTP.js +12 -0
  254. package/dist/visual-evaluator-TGEXYQTP.js.map +1 -0
  255. package/dist/workflows.d.ts +3 -2
  256. package/dist/workflows.js +2 -151
  257. package/dist/workflows.js.map +1 -1
  258. package/package.json +20 -16
  259. package/src/adapters/claude/sdk.ts +4 -2
  260. package/src/adapters/claude/tool-bridge.ts +2 -1
  261. package/src/adapters/generation-dispatch.ts +9 -0
  262. package/src/adapters/openai/raw.ts +4 -0
  263. package/src/adapters/openai/sdk.ts +6 -1
  264. package/src/adapters/openai/tokens.ts +21 -7
  265. package/src/adapters/tool-bridge.ts +1 -1
  266. package/src/adapters/tools.ts +1 -1
  267. package/src/advanced/feedback.ts +1 -2
  268. package/src/advanced/generator.ts +4 -3
  269. package/src/boilerplate/free-design-prompt.ts +7 -0
  270. package/src/boilerplate/generate.ts +18 -5
  271. package/src/boilerplate/hard-sections.ts +8 -3
  272. package/src/boilerplate/react-hooks.ts +56 -0
  273. package/src/boilerplate/system-prompt.ts +12 -3
  274. package/src/check/run-tier0.ts +233 -8
  275. package/src/check/type-checker.ts +128 -16
  276. package/src/coding-agent/tools.ts +26 -3
  277. package/src/design-mode.ts +4 -9
  278. package/src/evaluation/axis-checks/checks/state-merge.ts +2 -4
  279. package/src/evaluation/axis-checks/checks/state-payload.ts +1 -28
  280. package/src/evaluation/axis-checks/checks/tint.ts +197 -0
  281. package/src/evaluation/axis-checks/helpers.ts +121 -0
  282. package/src/evaluation/axis-checks/registry.ts +2 -0
  283. package/src/evaluation/criteria/__fixtures__/edge-v2-draw2.json +4629 -0
  284. package/src/evaluation/criteria/bank.ts +1 -1
  285. package/src/evaluation/criteria/edge-instruments.ts +14 -0
  286. package/src/evaluation/criteria/edge-probe-v2.ts +352 -0
  287. package/src/evaluation/criteria/edge-v2.ts +242 -0
  288. package/src/evaluation/criteria/resolve.ts +24 -5
  289. package/src/evaluation/index.ts +3 -5
  290. package/src/evaluation/mcp-server.ts +0 -50
  291. package/src/evaluation/types-public.ts +6 -1
  292. package/src/evaluation/visual-evaluator.ts +161 -30
  293. package/src/harness/check/runtime-render/index.ts +28 -4
  294. package/src/harness/check/runtime-render/render-check.ts +20 -21
  295. package/src/harness/claude-agent-sdk-loader.ts +93 -0
  296. package/src/harness/claude-code-login-query.ts +1 -1
  297. package/src/harness/coding/generate-task-runner.ts +1 -0
  298. package/src/harness/coding/run-coding-turn.ts +3 -0
  299. package/src/harness/coding/run-eval-round.ts +9 -0
  300. package/src/harness/llm-router.ts +50 -2
  301. package/src/harness/runtime.ts +17 -0
  302. package/src/index.ts +9 -0
  303. package/src/providers/anthropic-tool-call.ts +263 -0
  304. package/src/providers/index.ts +13 -0
  305. package/src/tools/get-primitives-ts.ts +1 -1
  306. package/src/tools/render-check.ts +4 -4
  307. package/src/validation/primitives.ts +2 -1
  308. package/src/evaluation/loop.ts +0 -218
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hash.ts"],"names":[],"mappings":";;;AAqBA,SAAS,gBAAgB,KAAA,EAAwB;AAC/C,EAAA,IAAI,KAAA,KAAU,MAAM,OAAO,MAAA;AAC3B,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,GAAI,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,MAAA;AACvF,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,IAAA,CAAK,UAAU,KAAK,CAAA;AAC1D,EAAA,IAAI,OAAO,KAAA,KAAU,SAAA,EAAW,OAAO,QAAQ,MAAA,GAAS,OAAA;AACxD,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,GAAA,CAAI,eAAe,CAAA,CAAE,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AACzE,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,KAAgC,EAAE,IAAA,EAAK;AAChE,IAAA,MAAM,QAAQ,IAAA,CAAK,GAAA;AAAA,MACjB,CAAC,CAAA,KACC,CAAA,EAAG,IAAA,CAAK,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA,EAAI,eAAA,CAAiB,KAAA,CAAkC,CAAC,CAAC,CAAC,CAAA;AAAA,KAClF;AACA,IAAA,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,EAC5B;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,UAAU,KAAA,EAAuB;AACxC,EAAA,OAAO,UAAA,CAAW,QAAQ,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACrE;AAKO,SAAS,mBAAmB,CAAA,EAA2B;AAC5D,EAAA,OAAO,SAAA,CAAU,eAAA,CAAgB,EAAE,MAAA,EAAQ,CAAA,CAAE,QAAQ,QAAA,EAAU,CAAA,CAAE,QAAA,EAAU,CAAC,CAAA;AAC9E;AAUO,SAAS,iBAAiB,KAAA,EAStB;AACT,EAAA,OAAO,SAAA,CAAU,eAAA,CAAgB,KAAK,CAAC,CAAA;AACzC;AAMO,SAAS,mBAAmB,KAAA,EAIxB;AACT,EAAA,MAAM,CAAA,GAAI,MAAM,cAAA,CAAe,MAAA;AAC/B,EAAA,MAAM,eAAyB,EAAC;AAChC,EAAA,IAAI,CAAA,CAAE,UAAU,MAAA,EAAQ,YAAA,CAAa,KAAK,CAAA,MAAA,EAAS,CAAA,CAAE,KAAK,CAAA,CAAE,CAAA;AAC5D,EAAA,IAAI,CAAA,CAAE,WAAW,MAAA,EAAQ,YAAA,CAAa,KAAK,CAAA,OAAA,EAAU,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA;AAC/D,EAAA,IAAI,CAAA,CAAE,aAAa,MAAA,EAAQ,YAAA,CAAa,KAAK,CAAA,SAAA,EAAY,CAAA,CAAE,QAAQ,CAAA,CAAE,CAAA;AACrE,EAAA,IAAI,CAAA,CAAE,YAAY,MAAA,EAAQ,YAAA,CAAa,KAAK,CAAA,QAAA,EAAW,CAAA,CAAE,OAAO,CAAA,CAAE,CAAA;AAClE,EAAA,MAAM,WAAW,YAAA,CAAa,MAAA,GAAS,IAAI,YAAA,CAAa,IAAA,CAAK,GAAG,CAAA,GAAI,SAAA;AACpE,EAAA,OAAO,GAAG,KAAA,CAAM,OAAO,IAAI,QAAQ,CAAA,CAAA,EAAI,MAAM,YAAY,CAAA,CAAA;AAC3D","file":"chunk-DUU3ZJDQ.js","sourcesContent":["// packages/ui-gen/src/hash.ts\n//\n// Deterministic fingerprint helpers for harness composition. Two inputs\n// that are structurally equivalent hash to the same 12-char prefix; two\n// different inputs hash to different prefixes.\n//\n// Used for:\n// - Harness id attribution (log + benchmark cell tagging)\n// - Prompt-cache key reuse\n// - Comparison-validity checks when benchmarking harness variants\n//\n// The `stableStringify` + `shortHash` primitives are private\n// implementation detail of this module.\n\nimport { createHash } from \"node:crypto\";\nimport type { Classification } from \"./classifier/axes.js\";\n\n// ─── Private primitives ────────────────────────────────────────────────────\n// Not exported — these are implementation detail. If an external consumer\n// needs a stable hash of arbitrary data, they should do it themselves.\n\nfunction stableStringify(value: unknown): string {\n if (value === null) return \"null\";\n if (typeof value === \"number\") return Number.isFinite(value) ? JSON.stringify(value) : \"null\";\n if (typeof value === \"string\") return JSON.stringify(value);\n if (typeof value === \"boolean\") return value ? \"true\" : \"false\";\n if (Array.isArray(value)) return `[${value.map(stableStringify).join(\",\")}]`;\n if (typeof value === \"object\") {\n const keys = Object.keys(value as Record<string, unknown>).sort();\n const parts = keys.map(\n (k) =>\n `${JSON.stringify(k)}:${stableStringify((value as Record<string, unknown>)[k])}`,\n );\n return `{${parts.join(\",\")}}`;\n }\n return \"null\";\n}\n\nfunction shortHash(input: string): string {\n return createHash(\"sha256\").update(input).digest(\"hex\").slice(0, 12);\n}\n\n// ─── Public surface ────────────────────────────────────────────────────────\n\n/** Hash a classification — used as a sub-component of the harness id. */\nexport function hashClassification(c: Classification): string {\n return shortHash(stableStringify({ vector: c.vector, riskTier: c.riskTier }));\n}\n\n/**\n * Compute a harness id from the materialized pieces. Called by `createHarness`\n * after all legs are built.\n *\n * Hashes only the stable content — not function references (applyPatch,\n * planner, etc.) because function identity isn't serializable. Instead,\n * version tags bump when semantics change.\n */\nexport function computeHarnessId(input: {\n classificationHash: string;\n howVersion: string;\n whatVersion: string;\n checkVersion: string;\n processVersion: string;\n workflowId: string;\n fragmentIds: readonly string[];\n overrides: readonly string[];\n}): string {\n return shortHash(stableStringify(input));\n}\n\n/**\n * Human-readable harness name. Deterministic but informative — derives from\n * classification + workflow without needing to look up the id.\n */\nexport function computeHarnessName(input: {\n classification: Classification;\n workflowName: string;\n version: string;\n}): string {\n const v = input.classification.vector;\n const dominantAxes: string[] = [];\n if (v.state !== \"none\") dominantAxes.push(`state=${v.state}`);\n if (v.writes !== \"none\") dominantAxes.push(`writes=${v.writes}`);\n if (v.realtime !== \"none\") dominantAxes.push(`realtime=${v.realtime}`);\n if (v.tooling !== \"none\") dominantAxes.push(`tooling=${v.tooling}`);\n const axesPart = dominantAxes.length > 0 ? dominantAxes.join(\"+\") : \"passive\";\n return `${input.version}/${axesPart}/${input.workflowName}`;\n}\n"]}
@@ -0,0 +1,30 @@
1
+ // src/evaluation/criteria/context.ts
2
+ var PRIMARY_500 = /--ggui-color-primary-500:\s*(#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6})\s*;/;
3
+ var ACHROMATIC_SPREAD = 0.08;
4
+ function chromaOfCssTokens(cssTokens) {
5
+ const m = cssTokens?.match(PRIMARY_500);
6
+ if (!m) return "unknown";
7
+ const hex = m[1].slice(1);
8
+ const full = hex.length === 3 ? hex.split("").map((c) => c + c).join("") : hex;
9
+ const channels = [0, 2, 4].map((i) => parseInt(full.slice(i, i + 2), 16));
10
+ const spread = (Math.max(...channels) - Math.min(...channels)) / 255;
11
+ return spread < ACHROMATIC_SPREAD ? "achromatic" : "chromatic";
12
+ }
13
+ function criteriaContextFor(src) {
14
+ const v = src.classification.vector;
15
+ const preset = src.profile?.aesthetic?.id;
16
+ return {
17
+ hasActions: Object.keys(src.contract?.actionSpec ?? {}).length > 0,
18
+ riskTier: src.classification.riskTier,
19
+ axes: { render: v.render, state: v.state, writes: v.writes, fetch: v.fetch, layout: v.layout },
20
+ chroma: chromaOfCssTokens(src.cssTokens),
21
+ profilePresent: src.profile !== void 0,
22
+ shell: src.shell,
23
+ ...src.kind !== void 0 ? { kind: src.kind } : {},
24
+ ...preset !== void 0 ? { preset } : {}
25
+ };
26
+ }
27
+
28
+ export { chromaOfCssTokens, criteriaContextFor };
29
+ //# sourceMappingURL=chunk-DXKRBXNU.js.map
30
+ //# sourceMappingURL=chunk-DXKRBXNU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/evaluation/criteria/context.ts"],"names":[],"mappings":";AAWA,IAAM,WAAA,GAAc,mEAAA;AAEpB,IAAM,iBAAA,GAAoB,IAAA;AAGnB,SAAS,kBAAkB,SAAA,EAA+C;AAC/E,EAAA,MAAM,CAAA,GAAI,SAAA,EAAW,KAAA,CAAM,WAAW,CAAA;AACtC,EAAA,IAAI,CAAC,GAAG,OAAO,SAAA;AACf,EAAA,MAAM,GAAA,GAAM,CAAA,CAAE,CAAC,CAAA,CAAG,MAAM,CAAC,CAAA;AACzB,EAAA,MAAM,OAAO,GAAA,CAAI,MAAA,KAAW,CAAA,GAAI,GAAA,CAAI,MAAM,EAAE,CAAA,CAAE,GAAA,CAAI,CAAC,MAAM,CAAA,GAAI,CAAC,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,GAAI,GAAA;AAC3E,EAAA,MAAM,WAAW,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,EAAE,GAAA,CAAI,CAAC,CAAA,KAAM,QAAA,CAAS,KAAK,KAAA,CAAM,CAAA,EAAG,IAAI,CAAC,CAAA,EAAG,EAAE,CAAC,CAAA;AACxE,EAAA,MAAM,MAAA,GAAA,CAAU,IAAA,CAAK,GAAA,CAAI,GAAG,QAAQ,IAAI,IAAA,CAAK,GAAA,CAAI,GAAG,QAAQ,CAAA,IAAK,GAAA;AACjE,EAAA,OAAO,MAAA,GAAS,oBAAoB,YAAA,GAAe,WAAA;AACrD;AAcO,SAAS,mBAAmB,GAAA,EAAmD;AACpF,EAAA,MAAM,CAAA,GAAI,IAAI,cAAA,CAAe,MAAA;AAC7B,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,OAAA,EAAS,SAAA,EAAW,EAAA;AACvC,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,IAAA,CAAK,GAAA,CAAI,UAAU,UAAA,IAAc,EAAE,CAAA,CAAE,MAAA,GAAS,CAAA;AAAA,IACjE,QAAA,EAAU,IAAI,cAAA,CAAe,QAAA;AAAA,IAC7B,MAAM,EAAE,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAQ,OAAO,CAAA,CAAE,KAAA,EAAO,MAAA,EAAQ,CAAA,CAAE,QAAQ,KAAA,EAAO,CAAA,CAAE,KAAA,EAAO,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,IAC7F,MAAA,EAAQ,iBAAA,CAAkB,GAAA,CAAI,SAAS,CAAA;AAAA,IACvC,cAAA,EAAgB,IAAI,OAAA,KAAY,MAAA;AAAA,IAChC,OAAO,GAAA,CAAI,KAAA;AAAA,IACX,GAAI,IAAI,IAAA,KAAS,MAAA,GAAY,EAAE,IAAA,EAAM,GAAA,CAAI,IAAA,EAAK,GAAI,EAAC;AAAA,IACnD,GAAI,MAAA,KAAW,MAAA,GAAY,EAAE,MAAA,KAAW;AAAC,GAC3C;AACF","file":"chunk-DXKRBXNU.js","sourcesContent":["/**\n * The selector's inputs for one card — ggui#1436. Every key here is hashed into `criteriaSetId`\n * and STORED in the block (the CTO's A1), so a stored verdict reproduces its own set from the\n * record alone. `canvas` is added per canvas inside the judge; the rest is the harness's.\n */\nimport type { DataContract } from '@ggui-ai/protocol';\nimport type { Classification } from '../../classifier/axes.js';\nimport type { GenerationProfileInput } from '../../boilerplate/styling-profile.js';\nimport type { CriteriaChroma, CriteriaContext } from '../types-public.js';\n\n/** The primary at its 500 step, as the design's tokens render it (`--ggui-color-primary-500: #rrggbb;`). */\nconst PRIMARY_500 = /--ggui-color-primary-500:\\s*(#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6})\\s*;/;\n/** Below this max−min spread (0..1) a primary reads as achromatic — an inversion, not a hue. */\nconst ACHROMATIC_SPREAD = 0.08;\n\n/** Read the theme's chroma off its tokens; `unknown` when no primary is named. */\nexport function chromaOfCssTokens(cssTokens: string | undefined): CriteriaChroma {\n const m = cssTokens?.match(PRIMARY_500);\n if (!m) return 'unknown';\n const hex = m[1]!.slice(1);\n const full = hex.length === 3 ? hex.split('').map((c) => c + c).join('') : hex;\n const channels = [0, 2, 4].map((i) => parseInt(full.slice(i, i + 2), 16));\n const spread = (Math.max(...channels) - Math.min(...channels)) / 255;\n return spread < ACHROMATIC_SPREAD ? 'achromatic' : 'chromatic';\n}\n\nexport interface CriteriaContextSources {\n readonly classification: Classification;\n readonly contract: DataContract | undefined;\n readonly cssTokens: string | undefined;\n readonly profile: GenerationProfileInput | undefined;\n readonly shell: string;\n readonly kind?: string;\n}\n\n/** The context minus `canvas` — the judge fills that per canvas. */\nexport type CriteriaContextInput = Omit<CriteriaContext, 'canvas'>;\n\nexport function criteriaContextFor(src: CriteriaContextSources): CriteriaContextInput {\n const v = src.classification.vector;\n const preset = src.profile?.aesthetic?.id;\n return {\n hasActions: Object.keys(src.contract?.actionSpec ?? {}).length > 0,\n riskTier: src.classification.riskTier,\n axes: { render: v.render, state: v.state, writes: v.writes, fetch: v.fetch, layout: v.layout },\n chroma: chromaOfCssTokens(src.cssTokens),\n profilePresent: src.profile !== undefined,\n shell: src.shell,\n ...(src.kind !== undefined ? { kind: src.kind } : {}),\n ...(preset !== undefined ? { preset } : {}),\n };\n}\n"]}