@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
@@ -1,9 +1,10 @@
1
1
  import { C as Classification } from '../axes-CKVCzR_x.js';
2
- import { E as EvalIssue } from '../types-public-h8IMnYuh.js';
2
+ import { E as EvalIssue } from '../types-public-hYlrerZh.js';
3
3
  import '@ggui-ai/protocol';
4
4
  import '../llm.js';
5
5
  import '@ggui-ai/mcp-server-core';
6
- import '../design-mode-DGWN_Gkm.js';
6
+ import '../design-mode-XyOQmzE0.js';
7
+ import '@ggui-ai/design/rendering';
7
8
  import '../types-Dh1s4K9j.js';
8
9
 
9
10
  /**
@@ -1,28 +1,4 @@
1
- // src/harness/validator-trace-sink.ts
2
- var activeSink = null;
3
- function setValidatorTraceSink(sink) {
4
- activeSink = sink;
5
- }
6
- function getValidatorTraceSink() {
7
- return activeSink;
8
- }
9
- function emitValidatorTraceEvent(event) {
10
- const sink = activeSink;
11
- if (!sink) return;
12
- try {
13
- sink.emit(event);
14
- } catch {
15
- }
16
- }
17
- function truncateSourceForTrace(source) {
18
- const cap = 16 * 1024;
19
- if (source.length <= cap) return source;
20
- return source.slice(0, cap) + "\n\n/* \u2026 truncated for devtools trace \u2026 */";
21
- }
22
- function newValidatorTraceId() {
23
- return Date.now().toString(36) + Math.random().toString(36).slice(2, 10);
24
- }
25
-
26
- export { emitValidatorTraceEvent, getValidatorTraceSink, newValidatorTraceId, setValidatorTraceSink, truncateSourceForTrace };
1
+ export { emitValidatorTraceEvent, getValidatorTraceSink, newValidatorTraceId, setValidatorTraceSink, truncateSourceForTrace } from '../chunk-WYHP46LT.js';
2
+ import '../chunk-G3PMV62Z.js';
27
3
  //# sourceMappingURL=validator-trace-sink.js.map
28
4
  //# sourceMappingURL=validator-trace-sink.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/harness/validator-trace-sink.ts"],"names":[],"mappings":";AAgGA,IAAI,UAAA,GAAwC,IAAA;AAMrC,SAAS,sBAAsB,IAAA,EAAuC;AAC3E,EAAA,UAAA,GAAa,IAAA;AACf;AAGO,SAAS,qBAAA,GAAmD;AACjE,EAAA,OAAO,UAAA;AACT;AAOO,SAAS,wBAAwB,KAAA,EAAkC;AACxE,EAAA,MAAM,IAAA,GAAO,UAAA;AACb,EAAA,IAAI,CAAC,IAAA,EAAM;AACX,EAAA,IAAI;AACF,IAAA,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,EACjB,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAMO,SAAS,uBAAuB,MAAA,EAAwB;AAC7D,EAAA,MAAM,MAAM,EAAA,GAAK,IAAA;AACjB,EAAA,IAAI,MAAA,CAAO,MAAA,IAAU,GAAA,EAAK,OAAO,MAAA;AACjC,EAAA,OAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,GAAG,CAAA,GAAI,sDAAA;AAChC;AAMO,SAAS,mBAAA,GAA8B;AAC5C,EAAA,OACE,IAAA,CAAK,GAAA,EAAI,CAAE,QAAA,CAAS,EAAE,CAAA,GACtB,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AAE1C","file":"validator-trace-sink.js","sourcesContent":["/**\n * Live validator-tier trace sink — devtools introspection of every\n * `runCheck()` invocation the harness performs.\n *\n * **Distinct from {@link LlmTraceSink}, {@link TelemetrySink}, and\n * {@link AuditSink}.**\n * - **LLM trace** (sibling) = devtools-only ring buffer of LLM call\n * payloads (system + user prompt, tools, completion, tokens).\n * Answers \"what did the LLM see / say?\".\n * - **Telemetry** (mcp-server-core) = ops signals (`pair.completed`,\n * `render.duration_ms`). Lossy. Flat scalars.\n * - **Audit** (mcp-server-core) = compliance log of privileged\n * mutations. Durable.\n * - **Validator trace** (this) = devtools-only ring buffer of every\n * `runCheck()` call's full validator-tier breakdown — which axis /\n * tier / runtime-render / LLM checks fired, what each returned\n * (pass/fail/warn issues with description, fix, line, severity).\n * Answers \"which check failed, and what did the LLM emit?\".\n *\n * **Why module-level registry instead of constructor injection.** Same\n * argument as the LLM trace sink — `runCheck()` is called from multiple\n * orchestrator entrypoints (`runHarness`, `run-eval-round`) across the\n * harness package; threading a sink through every call site for a\n * devtools-only surface isn't worth the churn. The ggui server is\n * single-process per CLI invocation; a hosted runtime isolates per\n * request via a process pool.\n *\n * **Default = no sink.** When unset, `runCheck` emits nothing and spends\n * no CPU formatting events. Passing `null` removes a previously\n * registered sink.\n */\nimport type { Classification } from \"../classifier/axes.js\";\nimport type { EvalIssue } from \"../evaluation/types-public.js\";\n\n/**\n * One `runCheck()` invocation. Emitted **after** all tiers complete\n * (success or partial — even when one tier throws, the others ran and\n * we surface what we have). Single event per call.\n */\nexport interface ValidatorTraceEvent {\n /** Random per-event ID. */\n readonly id: string;\n /** Epoch ms when `runCheck` was entered. */\n readonly at: number;\n /** Epoch ms when `runCheck` returned. */\n readonly endedAt: number;\n /** `endedAt - at` — convenience. */\n readonly durationMs: number;\n /** Harness fingerprint that drove these checks. */\n readonly harnessId: string;\n /** Classification axes that produced the harness — useful when the\n * operator asks \"why did this axis-check fire?\". */\n readonly classification: Classification;\n /** Workflow that produced the source-under-check. */\n readonly workflowId: string;\n /** Was a non-null compiledCode fed in? When false, runCheck short-\n * circuits to an empty result — surfaced for transparency. */\n readonly hadCompiledCode: boolean;\n /** Was the runtime-render probe deliberately skipped? Mirrors the\n * `skipRuntimeRender` input flag. */\n readonly skippedRuntimeRender: boolean;\n /** Per-tier issue counts and which check ids fired. */\n readonly summary: {\n readonly totalIssues: number;\n readonly axisIssues: number;\n readonly tierIssues: number;\n readonly llmIssues: number;\n readonly runtimeRenderIssues: number;\n readonly firedCheckIds: readonly string[];\n };\n /** Every issue emitted across all tiers. Carries description + fix +\n * line + severity + tier + category — the full per-issue payload the\n * validator UI renders into a per-tier breakdown. */\n readonly issues: readonly EvalIssue[];\n /** Source under check — capped at ~16KB. Operators expanding a card\n * want to see what failed; longer sources are truncated with a\n * trailing marker so the UI shows the truncation honestly. */\n readonly sourceCode?: string;\n /** Original prompt — useful when \"this passed eval but doesn't match\n * the request\" comes up in operator triage. */\n readonly prompt?: string;\n /** Set when `runCheck` itself threw before completing. The event is\n * still emitted (devtools want to see partial / failed runs). */\n readonly error?: { readonly message: string };\n}\n\n/**\n * Sink that receives one event per `runCheck()` invocation. Same\n * contract as {@link LlmTraceSink} — implementations MUST be sync +\n * non-throwing. Buffer + drop or fan out to a queue inside the\n * implementation.\n */\nexport interface ValidatorTraceSink {\n emit(event: ValidatorTraceEvent): void;\n}\n\nlet activeSink: ValidatorTraceSink | null = null;\n\n/**\n * Register the active sink. Pass `null` to remove. Subsequent\n * {@link emitValidatorTraceEvent} calls dispatch to this sink.\n */\nexport function setValidatorTraceSink(sink: ValidatorTraceSink | null): void {\n activeSink = sink;\n}\n\n/** Read the active sink. Mostly for tests. */\nexport function getValidatorTraceSink(): ValidatorTraceSink | null {\n return activeSink;\n}\n\n/**\n * Internal — used by `runCheck`. No-op when no sink is registered.\n * Swallows sink-thrown errors (a broken devtools sink must not break\n * generation).\n */\nexport function emitValidatorTraceEvent(event: ValidatorTraceEvent): void {\n const sink = activeSink;\n if (!sink) return;\n try {\n sink.emit(event);\n } catch {\n // Devtools sink is allowed to be buggy — generation must not die.\n }\n}\n\n/**\n * Truncate a source string to ~16KB so a runaway component doesn't\n * blow the per-event memory budget. Adds a visible truncation marker.\n */\nexport function truncateSourceForTrace(source: string): string {\n const cap = 16 * 1024;\n if (source.length <= cap) return source;\n return source.slice(0, cap) + \"\\n\\n/* … truncated for devtools trace … */\";\n}\n\n/**\n * Crockford-style random ID. Same approach as the LLM trace sink —\n * dep-free for any runtime the harness might run in.\n */\nexport function newValidatorTraceId(): string {\n return (\n Date.now().toString(36) +\n Math.random().toString(36).slice(2, 10)\n );\n}\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"validator-trace-sink.js"}
package/dist/hash.js CHANGED
@@ -1,41 +1,4 @@
1
- import { createHash } from 'crypto';
2
-
3
- // src/hash.ts
4
- function stableStringify(value) {
5
- if (value === null) return "null";
6
- if (typeof value === "number") return Number.isFinite(value) ? JSON.stringify(value) : "null";
7
- if (typeof value === "string") return JSON.stringify(value);
8
- if (typeof value === "boolean") return value ? "true" : "false";
9
- if (Array.isArray(value)) return `[${value.map(stableStringify).join(",")}]`;
10
- if (typeof value === "object") {
11
- const keys = Object.keys(value).sort();
12
- const parts = keys.map(
13
- (k) => `${JSON.stringify(k)}:${stableStringify(value[k])}`
14
- );
15
- return `{${parts.join(",")}}`;
16
- }
17
- return "null";
18
- }
19
- function shortHash(input) {
20
- return createHash("sha256").update(input).digest("hex").slice(0, 12);
21
- }
22
- function hashClassification(c) {
23
- return shortHash(stableStringify({ vector: c.vector, riskTier: c.riskTier }));
24
- }
25
- function computeHarnessId(input) {
26
- return shortHash(stableStringify(input));
27
- }
28
- function computeHarnessName(input) {
29
- const v = input.classification.vector;
30
- const dominantAxes = [];
31
- if (v.state !== "none") dominantAxes.push(`state=${v.state}`);
32
- if (v.writes !== "none") dominantAxes.push(`writes=${v.writes}`);
33
- if (v.realtime !== "none") dominantAxes.push(`realtime=${v.realtime}`);
34
- if (v.tooling !== "none") dominantAxes.push(`tooling=${v.tooling}`);
35
- const axesPart = dominantAxes.length > 0 ? dominantAxes.join("+") : "passive";
36
- return `${input.version}/${axesPart}/${input.workflowName}`;
37
- }
38
-
39
- export { computeHarnessId, computeHarnessName, hashClassification };
1
+ export { computeHarnessId, computeHarnessName, hashClassification } from './chunk-DUU3ZJDQ.js';
2
+ import './chunk-G3PMV62Z.js';
40
3
  //# sourceMappingURL=hash.js.map
41
4
  //# sourceMappingURL=hash.js.map
package/dist/hash.js.map CHANGED
@@ -1 +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":"hash.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"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"hash.js"}
@@ -0,0 +1,4 @@
1
+ export { computeLineHash, formatHashlineStaleMessage, formatWithHashlines, parseHashlineRef, validateHashlineRefs } from './chunk-4MBR5GA3.js';
2
+ import './chunk-G3PMV62Z.js';
3
+ //# sourceMappingURL=hashline-5OKREIRM.js.map
4
+ //# sourceMappingURL=hashline-5OKREIRM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"hashline-5OKREIRM.js"}
package/dist/index.d.ts CHANGED
@@ -1,22 +1,23 @@
1
- export { C as CreateUiGeneratorOptions, c as createUiGenerator, e as extractComponentCode } from './create-ui-generator-BrZHF0cf.js';
2
- export { R as RuntimeRenderProbeConfig } from './adapter-h4_V69LI.js';
3
- import { Q as QualityConfig } from './types-public-h8IMnYuh.js';
4
- export { P as ProviderRetryInfo } from './types-public-h8IMnYuh.js';
1
+ export { C as CreateUiGeneratorOptions, c as createUiGenerator, e as extractComponentCode } from './create-ui-generator-BY-WeaPi.js';
2
+ export { R as RuntimeRenderProbeConfig } from './adapter-DLQ-5COm.js';
3
+ import { Q as QualityConfig } from './types-public-hYlrerZh.js';
4
+ export { P as ProviderRetryInfo, r as ProviderSdkPreload, s as preloadProviderSdks } from './types-public-hYlrerZh.js';
5
5
  export { GenerationResult, SameExchangeBreak, SameFailureBreak } from './harness/result-types.js';
6
6
  import { GeneratorBuild, UiGenerator } from '@ggui-ai/mcp-server-core';
7
- import { D as DesignMode } from './design-mode-DGWN_Gkm.js';
8
- export { b as CANVAS_BREAKPOINTS, c as CANVAS_CLASSES, d as CANVAS_DESCRIPTORS, e as CANVAS_VIEWPORTS, C as CanvasClass, f as CanvasDescriptor, g as CanvasDisplayMode, a as CanvasViewport, h as DEFAULT_DESIGN_MODE, i as DESIGN_MODES, j as canvasDisplayModeForShell, k as canvasForRendering, l as canvasForViewportWidth, m as describeCanvas } from './design-mode-DGWN_Gkm.js';
7
+ import { D as DesignMode } from './design-mode-XyOQmzE0.js';
8
+ export { a as CANVAS_BREAKPOINTS, b as CANVAS_DESCRIPTORS, c as CANVAS_VIEWPORTS, d as CanvasDescriptor, e as CanvasDisplayMode, C as CanvasViewport, f as DEFAULT_DESIGN_MODE, g as DESIGN_MODES, h as canvasDisplayModeForShell, i as canvasForRendering, j as canvasForViewportWidth, k as describeCanvas } from './design-mode-XyOQmzE0.js';
9
9
  export { CreateInMemoryGeneratorRegistryOptions, createInMemoryGeneratorRegistry } from '@ggui-ai/mcp-server-core/in-memory';
10
- export { R as RenderingContext, b as buildContractsContext, a as buildRenderingContext, c as buildVarianceContext, d as canvasForRenderingContext, i as injectContracts, e as injectRenderingContext, f as injectVariance } from './prompts-BhNUuRoZ.js';
10
+ export { R as RenderingContext, b as buildContractsContext, a as buildRenderingContext, c as buildVarianceContext, d as canvasForRenderingContext, i as injectContracts, e as injectRenderingContext, f as injectVariance } from './prompts-CLZGywMP.js';
11
11
  import { LLMToolDef } from './llm.js';
12
12
  import Anthropic from '@anthropic-ai/sdk';
13
13
  export { A as AESTHETIC_BRIEF_MAX_CHARS, G as GenerationProfileInput } from './styling-profile-CxfvV48g.js';
14
14
  export { VisualEvalAgentSpec } from './adapters/generation-dispatch.js';
15
15
  import { AppGenerationProfileEffort, ModelTier } from '@ggui-ai/protocol';
16
+ export { CANVAS_CLASSES, CanvasClass } from '@ggui-ai/design/rendering';
16
17
  import './harness/runtime.js';
17
- import './bank-Ctdp3FUA.js';
18
+ import './bank-LWaiAtaA.js';
18
19
  import 'zod';
19
- import './generate-tSO_shQ0.js';
20
+ import './generate-DQ4ci90s.js';
20
21
  import './axes-CKVCzR_x.js';
21
22
  import './types-Dh1s4K9j.js';
22
23
  import '@ggui-ai/gadgets';
@@ -24,9 +25,47 @@ import './evaluation/types.js';
24
25
  import './harness/types-public.js';
25
26
  import './policy.js';
26
27
  import './adapters/types.js';
27
- import './visual-evaluator-C2strxqD.js';
28
+ import './visual-evaluator-KskajxD5.js';
28
29
  import 'puppeteer-core';
29
30
 
31
+ /**
32
+ * The one runtime load of `@anthropic-ai/claude-agent-sdk` (ggui#1951).
33
+ *
34
+ * The SDK is an OPTIONAL peer of this package, not a dependency. Its
35
+ * per-platform native binary is about 300 MB, and only the Claude Code
36
+ * login route (`routeOverride.claudeCodeLogin`, `ggui serve
37
+ * --local-cli-login`), the `sdk`-mode Claude adapter and the
38
+ * `./evaluation` loop run it. A plain install therefore does not carry
39
+ * it, and every one of those paths loads it through
40
+ * {@link loadClaudeAgentSdk}: a missing SDK fails with one
41
+ * {@link ClaudeAgentSdkMissingError} that names the install line for
42
+ * each way of installing ggui, and every other failure keeps its own
43
+ * shape.
44
+ *
45
+ * `preloadProviderSdks` (in `./llm-router.ts`) imports the SDK directly
46
+ * on purpose: it reports a missing SDK in its `missing` list and never
47
+ * throws.
48
+ */
49
+ /** The package specifier, as it is imported and installed. */
50
+ declare const CLAUDE_AGENT_SDK_SPECIFIER = "@anthropic-ai/claude-agent-sdk";
51
+ /**
52
+ * The exact version this package's `peerDependencies` names. The install
53
+ * lines in {@link ClaudeAgentSdkMissingError} use it; a test pins it to
54
+ * `package.json`.
55
+ */
56
+ declare const CLAUDE_AGENT_SDK_VERSION = "0.3.229";
57
+ /** The SDK is not installed where this package can import it. */
58
+ declare class ClaudeAgentSdkMissingError extends Error {
59
+ constructor(cause: Error);
60
+ }
61
+ /**
62
+ * Check that the Claude Agent SDK loads, with the same errors as
63
+ * {@link loadClaudeAgentSdk}, for a host that wants to say so at boot
64
+ * (`ggui serve --local-cli-login`). Its signature names none of the SDK's
65
+ * types, so the package's main entry can export it. `importer` is for tests.
66
+ */
67
+ declare function ensureClaudeAgentSdk(importer?: () => Promise<unknown>): Promise<void>;
68
+
30
69
  /**
31
70
  * ui-gen's precise {@link GeneratorBuild}: the core port's generic shape with
32
71
  * ui-gen's own keys — `mode` is the design mode, and `digests` names the two
@@ -238,4 +277,4 @@ declare const EFFORT_DIALS: Readonly<Record<AppGenerationProfileEffort, EffortDi
238
277
  /** The dials for a named level; `undefined` when no level is named (the deployment's options stand). */
239
278
  declare function effortDials(effort: AppGenerationProfileEffort | undefined): EffortDials | undefined;
240
279
 
241
- export { CLAUDE_CODE_LOGIN_CREDENTIAL, CompileComponentCodeError, DesignMode, EFFORT_DIALS, EFFORT_TABLE_VERSION, type EffortDials, HARNESS_CODING_TOOLS, HARNESS_SCOPED_TOOLS, type InLoopEvaluationSwitches, type UiGenBuild, compileComponentCode, createAnthropicClient, effortDials, generatorBuild, harnessToolEntry, harnessToolNames, inLoopEvaluation, runsInLoopEvaluation, withBrowserCompile };
280
+ export { CLAUDE_AGENT_SDK_SPECIFIER, CLAUDE_AGENT_SDK_VERSION, CLAUDE_CODE_LOGIN_CREDENTIAL, ClaudeAgentSdkMissingError, CompileComponentCodeError, DesignMode, EFFORT_DIALS, EFFORT_TABLE_VERSION, type EffortDials, HARNESS_CODING_TOOLS, HARNESS_SCOPED_TOOLS, type InLoopEvaluationSwitches, type UiGenBuild, compileComponentCode, createAnthropicClient, effortDials, ensureClaudeAgentSdk, generatorBuild, harnessToolEntry, harnessToolNames, inLoopEvaluation, runsInLoopEvaluation, withBrowserCompile };