@rotifer/playground 0.8.0 → 0.8.5

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 (445) hide show
  1. package/CHANGELOG.md +38 -11
  2. package/README.md +64 -48
  3. package/README.zh.md +60 -37
  4. package/dist/cloud/auth.d.ts +9 -3
  5. package/dist/cloud/auth.d.ts.map +1 -1
  6. package/dist/cloud/auth.js +28 -13
  7. package/dist/cloud/auth.js.map +1 -1
  8. package/dist/cloud/client.d.ts +4 -3
  9. package/dist/cloud/client.d.ts.map +1 -1
  10. package/dist/cloud/client.js +152 -72
  11. package/dist/cloud/client.js.map +1 -1
  12. package/dist/cloud/types.d.ts +3 -0
  13. package/dist/cloud/types.d.ts.map +1 -1
  14. package/dist/cloud/types.js.map +1 -1
  15. package/dist/commands/agent-create.d.ts +20 -0
  16. package/dist/commands/agent-create.d.ts.map +1 -1
  17. package/dist/commands/agent-create.js +94 -80
  18. package/dist/commands/agent-create.js.map +1 -1
  19. package/dist/commands/agent-list.d.ts.map +1 -1
  20. package/dist/commands/agent-list.js +27 -24
  21. package/dist/commands/agent-list.js.map +1 -1
  22. package/dist/commands/agent-run.d.ts +24 -0
  23. package/dist/commands/agent-run.d.ts.map +1 -1
  24. package/dist/commands/agent-run.js +302 -26
  25. package/dist/commands/agent-run.js.map +1 -1
  26. package/dist/commands/api-key.d.ts +3 -0
  27. package/dist/commands/api-key.d.ts.map +1 -0
  28. package/dist/commands/api-key.js +235 -0
  29. package/dist/commands/api-key.js.map +1 -0
  30. package/dist/commands/arena-list.d.ts.map +1 -1
  31. package/dist/commands/arena-list.js +113 -97
  32. package/dist/commands/arena-list.js.map +1 -1
  33. package/dist/commands/arena-submit.d.ts.map +1 -1
  34. package/dist/commands/arena-submit.js +114 -31
  35. package/dist/commands/arena-submit.js.map +1 -1
  36. package/dist/commands/arena-watch.d.ts.map +1 -1
  37. package/dist/commands/arena-watch.js +59 -87
  38. package/dist/commands/arena-watch.js.map +1 -1
  39. package/dist/commands/compare.d.ts.map +1 -1
  40. package/dist/commands/compare.js +40 -50
  41. package/dist/commands/compare.js.map +1 -1
  42. package/dist/commands/compile.d.ts.map +1 -1
  43. package/dist/commands/compile.js +60 -37
  44. package/dist/commands/compile.js.map +1 -1
  45. package/dist/commands/hello.d.ts +3 -0
  46. package/dist/commands/hello.d.ts.map +1 -0
  47. package/dist/commands/hello.js +575 -0
  48. package/dist/commands/hello.js.map +1 -0
  49. package/dist/commands/info.d.ts.map +1 -1
  50. package/dist/commands/info.js +130 -40
  51. package/dist/commands/info.js.map +1 -1
  52. package/dist/commands/init.d.ts.map +1 -1
  53. package/dist/commands/init.js +39 -60
  54. package/dist/commands/init.js.map +1 -1
  55. package/dist/commands/install.d.ts.map +1 -1
  56. package/dist/commands/install.js +35 -9
  57. package/dist/commands/install.js.map +1 -1
  58. package/dist/commands/list.d.ts.map +1 -1
  59. package/dist/commands/list.js +111 -58
  60. package/dist/commands/list.js.map +1 -1
  61. package/dist/commands/login.d.ts.map +1 -1
  62. package/dist/commands/login.js +23 -10
  63. package/dist/commands/login.js.map +1 -1
  64. package/dist/commands/network.d.ts.map +1 -1
  65. package/dist/commands/network.js +48 -67
  66. package/dist/commands/network.js.map +1 -1
  67. package/dist/commands/publish.d.ts.map +1 -1
  68. package/dist/commands/publish.js +127 -53
  69. package/dist/commands/publish.js.map +1 -1
  70. package/dist/commands/reputation.js +84 -85
  71. package/dist/commands/reputation.js.map +1 -1
  72. package/dist/commands/run.d.ts.map +1 -1
  73. package/dist/commands/run.js +26 -9
  74. package/dist/commands/run.js.map +1 -1
  75. package/dist/commands/scan.d.ts.map +1 -1
  76. package/dist/commands/scan.js +8 -9
  77. package/dist/commands/scan.js.map +1 -1
  78. package/dist/commands/search.d.ts.map +1 -1
  79. package/dist/commands/search.js +80 -54
  80. package/dist/commands/search.js.map +1 -1
  81. package/dist/commands/self-update.d.ts +7 -0
  82. package/dist/commands/self-update.d.ts.map +1 -0
  83. package/dist/commands/self-update.js +187 -0
  84. package/dist/commands/self-update.js.map +1 -0
  85. package/dist/commands/stats.d.ts.map +1 -1
  86. package/dist/commands/stats.js +20 -26
  87. package/dist/commands/stats.js.map +1 -1
  88. package/dist/commands/test.d.ts.map +1 -1
  89. package/dist/commands/test.js +95 -75
  90. package/dist/commands/test.js.map +1 -1
  91. package/dist/commands/user-config.d.ts +3 -0
  92. package/dist/commands/user-config.d.ts.map +1 -0
  93. package/dist/commands/user-config.js +82 -0
  94. package/dist/commands/user-config.js.map +1 -0
  95. package/dist/commands/versions.d.ts.map +1 -1
  96. package/dist/commands/versions.js +46 -33
  97. package/dist/commands/versions.js.map +1 -1
  98. package/dist/commands/vg.d.ts.map +1 -1
  99. package/dist/commands/vg.js +65 -63
  100. package/dist/commands/vg.js.map +1 -1
  101. package/dist/commands/whoami.d.ts.map +1 -1
  102. package/dist/commands/whoami.js +33 -23
  103. package/dist/commands/whoami.js.map +1 -1
  104. package/dist/commands/wrap.d.ts.map +1 -1
  105. package/dist/commands/wrap.js +269 -29
  106. package/dist/commands/wrap.js.map +1 -1
  107. package/dist/index.js +61 -1
  108. package/dist/index.js.map +1 -1
  109. package/dist/publish/pre-publish-check.d.ts +15 -0
  110. package/dist/publish/pre-publish-check.d.ts.map +1 -0
  111. package/dist/publish/pre-publish-check.js +228 -0
  112. package/dist/publish/pre-publish-check.js.map +1 -0
  113. package/dist/runtime/domain-failover.d.ts +63 -0
  114. package/dist/runtime/domain-failover.d.ts.map +1 -0
  115. package/dist/runtime/domain-failover.js +164 -0
  116. package/dist/runtime/domain-failover.js.map +1 -0
  117. package/dist/runtime/network-gateway.d.ts +1 -1
  118. package/dist/runtime/network-gateway.d.ts.map +1 -1
  119. package/dist/runtime/network-gateway.js +10 -10
  120. package/dist/runtime/network-gateway.js.map +1 -1
  121. package/dist/scanner/scanner.js +3 -3
  122. package/dist/scanner/scanner.js.map +1 -1
  123. package/dist/utils/binding.d.ts.map +1 -1
  124. package/dist/utils/binding.js +5 -4
  125. package/dist/utils/binding.js.map +1 -1
  126. package/dist/utils/content-hash.d.ts +3 -0
  127. package/dist/utils/content-hash.d.ts.map +1 -0
  128. package/dist/utils/content-hash.js +25 -0
  129. package/dist/utils/content-hash.js.map +1 -0
  130. package/dist/utils/display.d.ts +44 -1
  131. package/dist/utils/display.d.ts.map +1 -1
  132. package/dist/utils/display.js +443 -14
  133. package/dist/utils/display.js.map +1 -1
  134. package/dist/utils/domain-suggest.d.ts.map +1 -1
  135. package/dist/utils/domain-suggest.js +3 -3
  136. package/dist/utils/domain-suggest.js.map +1 -1
  137. package/dist/utils/javy-compiler.js +9 -3
  138. package/dist/utils/javy-compiler.js.map +1 -1
  139. package/dist/utils/open-browser.d.ts +7 -3
  140. package/dist/utils/open-browser.d.ts.map +1 -1
  141. package/dist/utils/open-browser.js +15 -4
  142. package/dist/utils/open-browser.js.map +1 -1
  143. package/dist/utils/palette.d.ts +49 -0
  144. package/dist/utils/palette.d.ts.map +1 -0
  145. package/dist/utils/palette.js +80 -0
  146. package/dist/utils/palette.js.map +1 -0
  147. package/dist/utils/private-fs.d.ts +3 -0
  148. package/dist/utils/private-fs.d.ts.map +1 -0
  149. package/dist/utils/private-fs.js +25 -0
  150. package/dist/utils/private-fs.js.map +1 -0
  151. package/dist/utils/project-root.d.ts +2 -0
  152. package/dist/utils/project-root.d.ts.map +1 -0
  153. package/dist/utils/project-root.js +49 -0
  154. package/dist/utils/project-root.js.map +1 -0
  155. package/dist/utils/run-logger.d.ts +24 -0
  156. package/dist/utils/run-logger.d.ts.map +1 -0
  157. package/dist/utils/run-logger.js +70 -0
  158. package/dist/utils/run-logger.js.map +1 -0
  159. package/dist/utils/update-check.d.ts +20 -0
  160. package/dist/utils/update-check.d.ts.map +1 -0
  161. package/dist/utils/update-check.js +155 -0
  162. package/dist/utils/update-check.js.map +1 -0
  163. package/dist/utils/user-config.d.ts +10 -0
  164. package/dist/utils/user-config.d.ts.map +1 -0
  165. package/dist/utils/user-config.js +54 -0
  166. package/dist/utils/user-config.js.map +1 -0
  167. package/dist/utils/validate-gene-name.d.ts +7 -0
  168. package/dist/utils/validate-gene-name.d.ts.map +1 -0
  169. package/dist/utils/validate-gene-name.js +28 -0
  170. package/dist/utils/validate-gene-name.js.map +1 -0
  171. package/genes/genesis-code-format/phenotype.json +4 -3
  172. package/genes/genesis-file-read/phenotype.json +4 -3
  173. package/genes/genesis-l0-constraint/phenotype.json +4 -3
  174. package/genes/genesis-web-search/phenotype.json +5 -4
  175. package/genes/genesis-web-search-lite/phenotype.json +4 -3
  176. package/package.json +29 -8
  177. package/scripts/postinstall.js +38 -0
  178. package/dist/errors/formatter.d.ts +0 -25
  179. package/dist/errors/formatter.d.ts.map +0 -1
  180. package/dist/errors/formatter.js +0 -43
  181. package/dist/errors/formatter.js.map +0 -1
  182. package/genes/academic-writer/.cloud-manifest.json +0 -6
  183. package/genes/academic-writer/.gene-manifest.json +0 -8
  184. package/genes/academic-writer/SKILL.md +0 -274
  185. package/genes/academic-writer/phenotype.json +0 -28
  186. package/genes/ai-components/.cloud-manifest.json +0 -6
  187. package/genes/ai-components/.gene-manifest.json +0 -8
  188. package/genes/ai-components/SKILL.md +0 -381
  189. package/genes/ai-components/phenotype.json +0 -28
  190. package/genes/algorithmic-art/.cloud-manifest.json +0 -6
  191. package/genes/algorithmic-art/.gene-manifest.json +0 -8
  192. package/genes/algorithmic-art/SKILL.md +0 -405
  193. package/genes/algorithmic-art/phenotype.json +0 -28
  194. package/genes/answer-synthesizer/.cloud-manifest.json +0 -6
  195. package/genes/answer-synthesizer/index.ts +0 -194
  196. package/genes/answer-synthesizer/phenotype.json +0 -61
  197. package/genes/api-designer/.cloud-manifest.json +0 -6
  198. package/genes/api-designer/.gene-manifest.json +0 -8
  199. package/genes/api-designer/SKILL.md +0 -456
  200. package/genes/api-designer/phenotype.json +0 -28
  201. package/genes/auto-coder/.cloud-manifest.json +0 -6
  202. package/genes/auto-coder/.gene-manifest.json +0 -8
  203. package/genes/auto-coder/SKILL.md +0 -400
  204. package/genes/auto-coder/phenotype.json +0 -28
  205. package/genes/auto-writer/.cloud-manifest.json +0 -6
  206. package/genes/auto-writer/.gene-manifest.json +0 -8
  207. package/genes/auto-writer/SKILL.md +0 -361
  208. package/genes/auto-writer/phenotype.json +0 -28
  209. package/genes/brand-personality/.cloud-manifest.json +0 -6
  210. package/genes/brand-personality/.gene-manifest.json +0 -8
  211. package/genes/brand-personality/SKILL.md +0 -549
  212. package/genes/brand-personality/phenotype.json +0 -28
  213. package/genes/business-writer/.cloud-manifest.json +0 -6
  214. package/genes/business-writer/.gene-manifest.json +0 -8
  215. package/genes/business-writer/SKILL.md +0 -448
  216. package/genes/business-writer/phenotype.json +0 -28
  217. package/genes/citation-manager/.cloud-manifest.json +0 -6
  218. package/genes/citation-manager/.gene-manifest.json +0 -8
  219. package/genes/citation-manager/SKILL.md +0 -279
  220. package/genes/citation-manager/index.ts +0 -162
  221. package/genes/citation-manager/package.json +0 -1
  222. package/genes/citation-manager/phenotype.json +0 -50
  223. package/genes/code-complexity/.cloud-manifest.json +0 -6
  224. package/genes/code-complexity/README.md +0 -35
  225. package/genes/code-complexity/index.ts +0 -101
  226. package/genes/code-complexity/phenotype.json +0 -34
  227. package/genes/copywriter/.cloud-manifest.json +0 -6
  228. package/genes/copywriter/.gene-manifest.json +0 -8
  229. package/genes/copywriter/SKILL.md +0 -329
  230. package/genes/copywriter/phenotype.json +0 -28
  231. package/genes/creative-writer/.cloud-manifest.json +0 -6
  232. package/genes/creative-writer/.gene-manifest.json +0 -8
  233. package/genes/creative-writer/SKILL.md +0 -356
  234. package/genes/creative-writer/phenotype.json +0 -28
  235. package/genes/data-modeler/.cloud-manifest.json +0 -6
  236. package/genes/data-modeler/.gene-manifest.json +0 -8
  237. package/genes/data-modeler/SKILL.md +0 -486
  238. package/genes/data-modeler/phenotype.json +0 -28
  239. package/genes/debugger/.cloud-manifest.json +0 -6
  240. package/genes/debugger/.gene-manifest.json +0 -8
  241. package/genes/debugger/SKILL.md +0 -416
  242. package/genes/debugger/phenotype.json +0 -28
  243. package/genes/design-tokens/.cloud-manifest.json +0 -6
  244. package/genes/design-tokens/.gene-manifest.json +0 -8
  245. package/genes/design-tokens/SKILL.md +0 -222
  246. package/genes/design-tokens/index.ts +0 -128
  247. package/genes/design-tokens/package.json +0 -1
  248. package/genes/design-tokens/phenotype.json +0 -1
  249. package/genes/devops-automator/.cloud-manifest.json +0 -6
  250. package/genes/devops-automator/.gene-manifest.json +0 -8
  251. package/genes/devops-automator/SKILL.md +0 -490
  252. package/genes/devops-automator/phenotype.json +0 -28
  253. package/genes/doc-coauthoring/.cloud-manifest.json +0 -6
  254. package/genes/doc-coauthoring/.gene-manifest.json +0 -8
  255. package/genes/doc-coauthoring/SKILL.md +0 -375
  256. package/genes/doc-coauthoring/phenotype.json +0 -28
  257. package/genes/doc-retrieval/.cloud-manifest.json +0 -6
  258. package/genes/doc-retrieval/index.ts +0 -134
  259. package/genes/doc-retrieval/phenotype.json +0 -54
  260. package/genes/docs-writer/.cloud-manifest.json +0 -6
  261. package/genes/docs-writer/.gene-manifest.json +0 -8
  262. package/genes/docs-writer/SKILL.md +0 -492
  263. package/genes/docs-writer/phenotype.json +0 -28
  264. package/genes/evolve-life/.cloud-manifest.json +0 -6
  265. package/genes/evolve-life/.compile-result.json +0 -12
  266. package/genes/evolve-life/README.md +0 -52
  267. package/genes/evolve-life/gene.ir.wasm +0 -0
  268. package/genes/evolve-life/gene.wasm +0 -0
  269. package/genes/evolve-life/index.ts +0 -255
  270. package/genes/evolve-life/phenotype.json +0 -129
  271. package/genes/evolve-life-bitwise/.cloud-manifest.json +0 -6
  272. package/genes/evolve-life-bitwise/.compile-result.json +0 -12
  273. package/genes/evolve-life-bitwise/gene.ir.wasm +0 -0
  274. package/genes/evolve-life-bitwise/gene.wasm +0 -0
  275. package/genes/evolve-life-bitwise/index.ts +0 -273
  276. package/genes/evolve-life-bitwise/phenotype.json +0 -129
  277. package/genes/evolve-life-sparse/.cloud-manifest.json +0 -6
  278. package/genes/evolve-life-sparse/.compile-result.json +0 -12
  279. package/genes/evolve-life-sparse/gene.ir.wasm +0 -0
  280. package/genes/evolve-life-sparse/gene.wasm +0 -0
  281. package/genes/evolve-life-sparse/index.ts +0 -236
  282. package/genes/evolve-life-sparse/phenotype.json +0 -129
  283. package/genes/fact-checker/.cloud-manifest.json +0 -6
  284. package/genes/fact-checker/.gene-manifest.json +0 -8
  285. package/genes/fact-checker/SKILL.md +0 -373
  286. package/genes/fact-checker/phenotype.json +0 -28
  287. package/genes/git-workflow/.cloud-manifest.json +0 -6
  288. package/genes/git-workflow/.gene-manifest.json +0 -8
  289. package/genes/git-workflow/SKILL.md +0 -407
  290. package/genes/git-workflow/phenotype.json +0 -28
  291. package/genes/grammar-checker/.cloud-manifest.json +0 -6
  292. package/genes/grammar-checker/.gene-manifest.json +0 -8
  293. package/genes/grammar-checker/SKILL.md +0 -194
  294. package/genes/grammar-checker/index.ts +0 -168
  295. package/genes/grammar-checker/package.json +0 -1
  296. package/genes/grammar-checker/phenotype.json +0 -52
  297. package/genes/guard-balanced/.gene-manifest.json +0 -8
  298. package/genes/guard-balanced/phenotype.json +0 -105
  299. package/genes/guard-balanced/system-prompt.md +0 -23
  300. package/genes/guard-strict/.gene-manifest.json +0 -8
  301. package/genes/guard-strict/phenotype.json +0 -107
  302. package/genes/guard-strict/system-prompt.md +0 -18
  303. package/genes/json-validator/.cloud-manifest.json +0 -6
  304. package/genes/json-validator/README.md +0 -42
  305. package/genes/json-validator/index.ts +0 -112
  306. package/genes/json-validator/phenotype.json +0 -42
  307. package/genes/license-advisor/.cloud-manifest.json +0 -6
  308. package/genes/license-advisor/.gene-manifest.json +0 -8
  309. package/genes/license-advisor/SKILL.md +0 -117
  310. package/genes/license-advisor/phenotype.json +0 -28
  311. package/genes/logic-architect/.cloud-manifest.json +0 -6
  312. package/genes/logic-architect/.gene-manifest.json +0 -8
  313. package/genes/logic-architect/SKILL.md +0 -451
  314. package/genes/logic-architect/phenotype.json +0 -28
  315. package/genes/markdown-formatter/.cloud-manifest.json +0 -6
  316. package/genes/markdown-formatter/README.md +0 -34
  317. package/genes/markdown-formatter/index.ts +0 -86
  318. package/genes/markdown-formatter/phenotype.json +0 -32
  319. package/genes/orch/.cloud-manifest.json +0 -6
  320. package/genes/orch/.gene-manifest.json +0 -8
  321. package/genes/orch/SKILL.md +0 -504
  322. package/genes/orch/phenotype.json +0 -28
  323. package/genes/particle-barneshut/.cloud-manifest.json +0 -6
  324. package/genes/particle-barneshut/.compile-result.json +0 -12
  325. package/genes/particle-barneshut/README.md +0 -55
  326. package/genes/particle-barneshut/gene.ir.wasm +0 -0
  327. package/genes/particle-barneshut/gene.wasm +0 -0
  328. package/genes/particle-barneshut/index.ts +0 -486
  329. package/genes/particle-barneshut/phenotype.json +0 -137
  330. package/genes/particle-brute/.cloud-manifest.json +0 -6
  331. package/genes/particle-brute/.compile-result.json +0 -12
  332. package/genes/particle-brute/README.md +0 -55
  333. package/genes/particle-brute/gene.ir.wasm +0 -0
  334. package/genes/particle-brute/gene.wasm +0 -0
  335. package/genes/particle-brute/index.ts +0 -277
  336. package/genes/particle-brute/phenotype.json +0 -137
  337. package/genes/particle-spatial/.cloud-manifest.json +0 -6
  338. package/genes/particle-spatial/.compile-result.json +0 -12
  339. package/genes/particle-spatial/README.md +0 -53
  340. package/genes/particle-spatial/gene.ir.wasm +0 -0
  341. package/genes/particle-spatial/gene.wasm +0 -0
  342. package/genes/particle-spatial/index.ts +0 -352
  343. package/genes/particle-spatial/phenotype.json +0 -137
  344. package/genes/performance-optimizer/.cloud-manifest.json +0 -6
  345. package/genes/performance-optimizer/.gene-manifest.json +0 -8
  346. package/genes/performance-optimizer/SKILL.md +0 -480
  347. package/genes/performance-optimizer/phenotype.json +0 -28
  348. package/genes/plagiarism-checker/.cloud-manifest.json +0 -6
  349. package/genes/plagiarism-checker/.gene-manifest.json +0 -8
  350. package/genes/plagiarism-checker/SKILL.md +0 -342
  351. package/genes/plagiarism-checker/phenotype.json +0 -28
  352. package/genes/product-manager/.cloud-manifest.json +0 -6
  353. package/genes/product-manager/.gene-manifest.json +0 -8
  354. package/genes/product-manager/SKILL.md +0 -249
  355. package/genes/product-manager/phenotype.json +0 -28
  356. package/genes/project-reviewer/.cloud-manifest.json +0 -6
  357. package/genes/project-reviewer/.gene-manifest.json +0 -8
  358. package/genes/project-reviewer/SKILL.md +0 -312
  359. package/genes/project-reviewer/phenotype.json +0 -28
  360. package/genes/prompt-engineer/.cloud-manifest.json +0 -6
  361. package/genes/prompt-engineer/.gene-manifest.json +0 -8
  362. package/genes/prompt-engineer/SKILL.md +0 -411
  363. package/genes/prompt-engineer/phenotype.json +0 -28
  364. package/genes/prompt-review-perf/.gene-manifest.json +0 -8
  365. package/genes/prompt-review-perf/phenotype.json +0 -61
  366. package/genes/prompt-review-perf/system-prompt.md +0 -22
  367. package/genes/prompt-review-readability/.gene-manifest.json +0 -8
  368. package/genes/prompt-review-readability/phenotype.json +0 -60
  369. package/genes/prompt-review-readability/system-prompt.md +0 -21
  370. package/genes/prompt-review-security/.gene-manifest.json +0 -8
  371. package/genes/prompt-review-security/phenotype.json +0 -60
  372. package/genes/prompt-review-security/system-prompt.md +0 -21
  373. package/genes/readability-analyzer/.cloud-manifest.json +0 -6
  374. package/genes/readability-analyzer/.gene-manifest.json +0 -8
  375. package/genes/readability-analyzer/SKILL.md +0 -357
  376. package/genes/readability-analyzer/index.ts +0 -123
  377. package/genes/readability-analyzer/package.json +0 -1
  378. package/genes/readability-analyzer/phenotype.json +0 -35
  379. package/genes/rotifer-protocol/SKILL.md +0 -121
  380. package/genes/rule-router-frequency/.gene-manifest.json +0 -8
  381. package/genes/rule-router-frequency/phenotype.json +0 -76
  382. package/genes/rule-router-frequency/system-prompt.md +0 -26
  383. package/genes/rule-router-relevance/.gene-manifest.json +0 -8
  384. package/genes/rule-router-relevance/phenotype.json +0 -76
  385. package/genes/rule-router-relevance/system-prompt.md +0 -29
  386. package/genes/security-auditor/.cloud-manifest.json +0 -6
  387. package/genes/security-auditor/.gene-manifest.json +0 -8
  388. package/genes/security-auditor/SKILL.md +0 -494
  389. package/genes/security-auditor/phenotype.json +0 -28
  390. package/genes/seo-optimizer/.cloud-manifest.json +0 -6
  391. package/genes/seo-optimizer/.gene-manifest.json +0 -8
  392. package/genes/seo-optimizer/SKILL.md +0 -327
  393. package/genes/seo-optimizer/index.ts +0 -206
  394. package/genes/seo-optimizer/package.json +0 -1
  395. package/genes/seo-optimizer/phenotype.json +0 -1
  396. package/genes/source-linker/.cloud-manifest.json +0 -6
  397. package/genes/source-linker/index.ts +0 -88
  398. package/genes/source-linker/phenotype.json +0 -45
  399. package/genes/style-optimizer/.cloud-manifest.json +0 -6
  400. package/genes/style-optimizer/.gene-manifest.json +0 -8
  401. package/genes/style-optimizer/SKILL.md +0 -285
  402. package/genes/style-optimizer/phenotype.json +0 -28
  403. package/genes/tech-lead/.cloud-manifest.json +0 -6
  404. package/genes/tech-lead/.gene-manifest.json +0 -8
  405. package/genes/tech-lead/SKILL.md +0 -451
  406. package/genes/tech-lead/phenotype.json +0 -28
  407. package/genes/test-wrap/.cloud-manifest.json +0 -6
  408. package/genes/test-wrap/.gene-manifest.json +0 -8
  409. package/genes/test-wrap/phenotype.json +0 -28
  410. package/genes/testing-strategist/.cloud-manifest.json +0 -6
  411. package/genes/testing-strategist/.gene-manifest.json +0 -8
  412. package/genes/testing-strategist/SKILL.md +0 -500
  413. package/genes/testing-strategist/phenotype.json +0 -28
  414. package/genes/text-summarizer/.cloud-manifest.json +0 -6
  415. package/genes/text-summarizer/README.md +0 -34
  416. package/genes/text-summarizer/index.ts +0 -122
  417. package/genes/text-summarizer/phenotype.json +0 -32
  418. package/genes/tone-analyzer/.cloud-manifest.json +0 -6
  419. package/genes/tone-analyzer/.gene-manifest.json +0 -8
  420. package/genes/tone-analyzer/SKILL.md +0 -410
  421. package/genes/tone-analyzer/phenotype.json +0 -28
  422. package/genes/translator/.cloud-manifest.json +0 -6
  423. package/genes/translator/.gene-manifest.json +0 -8
  424. package/genes/translator/SKILL.md +0 -355
  425. package/genes/translator/phenotype.json +0 -28
  426. package/genes/ui-components/.cloud-manifest.json +0 -6
  427. package/genes/ui-components/.gene-manifest.json +0 -8
  428. package/genes/ui-components/SKILL.md +0 -467
  429. package/genes/ui-components/phenotype.json +0 -28
  430. package/genes/uiux-designer/.cloud-manifest.json +0 -6
  431. package/genes/uiux-designer/.gene-manifest.json +0 -8
  432. package/genes/uiux-designer/SKILL.md +0 -353
  433. package/genes/uiux-designer/phenotype.json +0 -28
  434. package/genes/url-extractor/.cloud-manifest.json +0 -6
  435. package/genes/url-extractor/README.md +0 -37
  436. package/genes/url-extractor/index.ts +0 -86
  437. package/genes/url-extractor/phenotype.json +0 -48
  438. package/genes/ux-patterns/.cloud-manifest.json +0 -6
  439. package/genes/ux-patterns/.gene-manifest.json +0 -8
  440. package/genes/ux-patterns/SKILL.md +0 -872
  441. package/genes/ux-patterns/phenotype.json +0 -28
  442. package/genes/web3-components/.cloud-manifest.json +0 -6
  443. package/genes/web3-components/.gene-manifest.json +0 -8
  444. package/genes/web3-components/SKILL.md +0 -390
  445. package/genes/web3-components/phenotype.json +0 -28
@@ -37,15 +37,42 @@ exports.arenaSubmitCommand = void 0;
37
37
  const commander_1 = require("commander");
38
38
  const node_fs_1 = require("node:fs");
39
39
  const node_path_1 = require("node:path");
40
- const node_crypto_1 = require("node:crypto");
41
40
  const display = __importStar(require("../utils/display.js"));
41
+ const palette_js_1 = require("../utils/palette.js");
42
+ const content_hash_js_1 = require("../utils/content-hash.js");
42
43
  const config_js_1 = require("../utils/config.js");
44
+ const project_root_js_1 = require("../utils/project-root.js");
43
45
  const binding_js_1 = require("../utils/binding.js");
44
46
  const client_js_1 = require("../cloud/client.js");
45
47
  const auth_js_1 = require("../cloud/auth.js");
48
+ const validate_gene_name_js_1 = require("../utils/validate-gene-name.js");
49
+ const index_js_1 = require("../scanner/index.js");
50
+ const SEVERITY_WEIGHT = {
51
+ CRITICAL: 1.0,
52
+ HIGH: 0.5,
53
+ MEDIUM: 0.2,
54
+ };
55
+ function computeSecurityLeakRisk(geneDir, geneName) {
56
+ const result = (0, index_js_1.scan)(geneDir, geneName, { scanAll: true });
57
+ let risk = 1.0;
58
+ for (const f of result.findings) {
59
+ risk += SEVERITY_WEIGHT[f.severity] ?? 0;
60
+ }
61
+ return risk;
62
+ }
63
+ function mulberry32(seed) {
64
+ let s = seed | 0;
65
+ return () => {
66
+ s = (s + 0x6d2b79f5) | 0;
67
+ let t = Math.imul(s ^ (s >>> 15), 1 | s);
68
+ t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
69
+ return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
70
+ };
71
+ }
46
72
  function generateTestInput(schema, seed) {
47
73
  if (!schema || !schema.properties)
48
74
  return { data: `test-input-${seed}` };
75
+ const rng = mulberry32(seed * 2654435761);
49
76
  const input = {};
50
77
  for (const [key, prop] of Object.entries(schema.properties)) {
51
78
  if (prop.default !== undefined) {
@@ -54,6 +81,27 @@ function generateTestInput(schema, seed) {
54
81
  else if (prop.enum && prop.enum.length > 0) {
55
82
  input[key] = prop.enum[seed % prop.enum.length];
56
83
  }
84
+ else if (prop.type === "array" && prop.items) {
85
+ const count = 50 + seed * 10;
86
+ const arr = [];
87
+ if (prop.items.type === "number") {
88
+ let price = 100;
89
+ for (let i = 0; i < count; i++) {
90
+ price *= 1 + (rng() - 0.48) * 0.04;
91
+ arr.push(Math.round(price * 100) / 100);
92
+ }
93
+ }
94
+ else if (prop.items.type === "string") {
95
+ for (let i = 0; i < Math.min(count, 5); i++)
96
+ arr.push(`item-${i}`);
97
+ }
98
+ else if (prop.items.type === "object") {
99
+ for (let i = 0; i < Math.min(count, 3); i++) {
100
+ arr.push(generateTestInput({ properties: prop.items.properties }, seed + i));
101
+ }
102
+ }
103
+ input[key] = arr;
104
+ }
57
105
  else if (prop.type === "number") {
58
106
  const min = prop.minimum ?? 1;
59
107
  const max = prop.maximum ?? 100;
@@ -70,34 +118,34 @@ function generateTestInput(schema, seed) {
70
118
  }
71
119
  exports.arenaSubmitCommand = new commander_1.Command("submit")
72
120
  .description("Submit a gene to the Arena for competition")
73
- .argument("<name>", "gene name to submit")
121
+ .argument("<gene-name>", "gene name to submit")
74
122
  .option("--skip-test", "skip pre-submission test", false)
75
123
  .option("--cloud", "submit to cloud Arena (requires login)", false)
76
- .action(async (name, options) => {
77
- const root = (0, config_js_1.getProjectRoot)();
124
+ .action(async (geneName, options) => {
125
+ const root = (0, project_root_js_1.requireProjectRoot)();
78
126
  const config = (0, config_js_1.loadConfig)(root);
79
127
  display.header("Arena Submission");
80
- const geneDir = (0, node_path_1.join)(root, config.genes_dir, name);
128
+ (0, validate_gene_name_js_1.validateGeneName)(geneName);
129
+ const geneDir = (0, node_path_1.join)(root, config.genes_dir, geneName);
81
130
  const phenotypePath = (0, node_path_1.join)(geneDir, "phenotype.json");
82
131
  if (!(0, node_fs_1.existsSync)(phenotypePath)) {
83
132
  display.rustStyleError({
84
133
  code: "E0030",
85
- message: `Gene '${name}' not found or not wrapped`,
134
+ message: `Gene '${geneName}' not found or not wrapped`,
86
135
  file: phenotypePath,
87
- suggestion: "Run 'rotifer wrap " + name + " --domain <domain>' first",
136
+ suggestion: "Run 'rotifer wrap " + geneName + " --domain <domain>' first",
88
137
  });
89
138
  process.exit(1);
90
139
  }
91
140
  const phenotype = JSON.parse((0, node_fs_1.readFileSync)(phenotypePath, "utf-8"));
92
- const geneId = (0, node_crypto_1.createHash)("sha256")
93
- .update(JSON.stringify(phenotype))
94
- .digest("hex");
141
+ const geneId = (0, content_hash_js_1.contentHash)(phenotype);
95
142
  if (!options.skipTest) {
96
- display.info("Running pre-submission L2 sandbox tests...");
143
+ display.info("Running pre-submission tests...");
97
144
  const requiredFields = ["domain", "inputSchema", "outputSchema", "version"];
98
- const valid = requiredFields.every((f) => f in phenotype);
99
- if (!valid) {
145
+ const isValid = requiredFields.every((f) => f in phenotype);
146
+ if (!isValid) {
100
147
  display.error("Phenotype validation failed — cannot submit to Arena");
148
+ display.hint("Check phenotype.json has all required fields: name, version, domain, fidelity, inputSchema, outputSchema.");
101
149
  process.exit(1);
102
150
  }
103
151
  display.success("Pre-submission tests passed");
@@ -110,6 +158,7 @@ exports.arenaSubmitCommand = new commander_1.Command("submit")
110
158
  if (isNative && hasIrWasm && binding) {
111
159
  display.info("Executing gene in WASM sandbox...");
112
160
  const irWasm = (0, node_fs_1.readFileSync)(irWasmPath);
161
+ const { irHash: _strip, ...phenotypeForExec } = phenotype;
113
162
  const arenaConstraints = JSON.stringify({
114
163
  max_fuel: 50_000_000_000,
115
164
  max_memory_bytes: 256 * 1024 * 1024,
@@ -122,7 +171,7 @@ exports.arenaSubmitCommand = new commander_1.Command("submit")
122
171
  for (let i = 0; i < runs; i++) {
123
172
  const testInput = generateTestInput(phenotype.inputSchema, i);
124
173
  try {
125
- const execResult = binding.executeGene(irWasm, JSON.stringify(testInput), JSON.stringify(phenotype), arenaConstraints);
174
+ const execResult = binding.executeGene(irWasm, JSON.stringify(testInput), JSON.stringify(phenotypeForExec), arenaConstraints);
126
175
  results.push({
127
176
  success: execResult.success,
128
177
  latencyMs: execResult.durationMs,
@@ -140,42 +189,73 @@ exports.arenaSubmitCommand = new commander_1.Command("submit")
140
189
  const latencyScore = 1.0 / (1.0 + avgLatency / 1000.0);
141
190
  const avgCost = results.reduce((s, r) => s + r.resourceCost, 0) / total;
142
191
  const resourceEfficiency = 1.0 / (1.0 + avgCost / 10000.0);
143
- // Multiplicative formula (v2) aligned with spec
144
- const coverage = 0.5;
145
- const robustness = 0.5;
146
- const numerator = successRate * Math.log1p(1 + coverage) * (1 + robustness);
192
+ // F(g) = [S_r · log(1+C_util) · (1+R_rob)] / [L · Resource_Cost] (Spec §5.1)
193
+ // C_util and R_rob require fuzzing infrastructure — hardcoded until v0.9 (ADR-215 P2)
194
+ const coverage = 0.5; // TODO(v0.9): property-based testing input space coverage
195
+ const robustness = 0.5; // TODO(v0.9): adversarial input stability from fuzzing
196
+ const numerator = successRate * Math.log1p(coverage) * (1 + robustness);
197
+ // Spec uses raw L × Resource_Cost (linear penalty); implementation uses sigmoid
198
+ // normalization 1/(1+x/k) to prevent extreme values from zeroing F(g) (ADR-215 P1)
147
199
  const denominator = Math.max(latencyScore, 0.001) * Math.max(resourceEfficiency, 0.001);
148
200
  const value = Math.min(denominator > 0 ? numerator / denominator : 0, 1.0);
149
- const safetyScore = successes === total ? 1.0 : successRate * 0.9;
201
+ // V(g) = Test_Pass_Rate / Security_Leak_Risk (Spec §5.1, ADR-215 P0)
202
+ const testPassRate = successRate;
203
+ const securityLeakRisk = computeSecurityLeakRisk(geneDir, geneName);
204
+ const safetyScore = testPassRate / securityLeakRisk;
150
205
  fitness = { value, safetyScore, successRate, latencyScore, resourceEfficiency };
151
206
  display.success(`Sandbox execution: ${successes}/${total} passed (avg ${avgLatency.toFixed(1)}ms)`);
207
+ if (securityLeakRisk > 1.0) {
208
+ display.warn(`Security scan found issues (leak_risk=${securityLeakRisk.toFixed(2)}, V(g)=${safetyScore.toFixed(4)})`);
209
+ }
152
210
  }
153
211
  else {
154
- // Deterministic fitness from content hash (fallback)
212
+ // Deterministic fitness from content hash (fallback for F(g) estimation)
155
213
  if (isNative && !binding) {
156
214
  display.warn("Native addon not available — using deterministic fitness estimation");
157
215
  }
158
216
  const seed = parseInt(geneId.slice(0, 8), 16);
159
217
  const baseFitness = isNative ? 0.70 : 0.45;
160
218
  const variance = (seed % 250) / 1000;
219
+ // V(g) still uses real AST scan even in fallback mode (ADR-215 P0)
220
+ const fallbackTestPassRate = 0.9 + (seed % 100) / 1000;
221
+ const fallbackSecurityLeakRisk = computeSecurityLeakRisk(geneDir, geneName);
222
+ const fallbackSafetyScore = fallbackTestPassRate / fallbackSecurityLeakRisk;
161
223
  fitness = {
162
224
  value: Math.min(baseFitness + variance, 0.99),
163
- safetyScore: 0.7 + (seed % 300) / 1000,
164
- successRate: 0.9 + (seed % 100) / 1000,
225
+ safetyScore: fallbackSafetyScore,
226
+ successRate: fallbackTestPassRate,
165
227
  latencyScore: 0.7 + ((seed >> 8) % 300) / 1000,
166
228
  resourceEfficiency: 0.6 + ((seed >> 16) % 300) / 1000,
167
229
  };
230
+ if (fallbackSecurityLeakRisk > 1.0) {
231
+ display.warn(`Security scan found issues (leak_risk=${fallbackSecurityLeakRisk.toFixed(2)}, V(g)=${fallbackSafetyScore.toFixed(4)})`);
232
+ }
233
+ }
234
+ try {
235
+ (0, node_fs_1.writeFileSync)((0, node_path_1.join)(geneDir, ".arena-cache.json"), JSON.stringify({
236
+ fitness: fitness.value,
237
+ safety: fitness.safetyScore,
238
+ success_rate: fitness.successRate,
239
+ latency_score: fitness.latencyScore,
240
+ resource_efficiency: fitness.resourceEfficiency,
241
+ content_hash: geneId,
242
+ method: (isNative && hasIrWasm && binding) ? "sandbox" : "estimated",
243
+ security_scanned: true,
244
+ evaluated_at: new Date().toISOString(),
245
+ }, null, 2) + "\n");
168
246
  }
247
+ catch { /* best-effort cache */ }
169
248
  const tau = 0.3;
170
249
  const vMin = 0.7;
171
- const passesAdmission = fitness.value >= tau && fitness.safetyScore >= vMin;
172
- if (!passesAdmission) {
250
+ const doesPassAdmission = fitness.value >= tau && fitness.safetyScore >= vMin;
251
+ if (!doesPassAdmission) {
173
252
  display.error(`Gene does not meet admission threshold (F(g)=${fitness.value.toFixed(3)} < τ=${tau} or V(g)=${fitness.safetyScore.toFixed(3)} < V_min=${vMin})`);
253
+ display.hint("Improve gene quality or security, then try again.");
174
254
  process.exit(1);
175
255
  }
176
256
  console.log();
177
- display.success(`Gene '${name}' submitted to Arena`);
178
- display.keyValue("Gene ID", display.geneId(geneId));
257
+ display.success(`Gene '${geneName}' submitted to Arena`);
258
+ display.keyValue("Gene ID", palette_js_1.c.warn(geneId));
179
259
  display.keyValue("Domain", phenotype.domain);
180
260
  display.keyValue("Fidelity", isNative ? "Native" : "Wrapped");
181
261
  display.keyValue("F(g)", fitness.value.toFixed(4));
@@ -184,15 +264,15 @@ exports.arenaSubmitCommand = new commander_1.Command("submit")
184
264
  display.keyValue("Latency Score", fitness.latencyScore.toFixed(4));
185
265
  display.keyValue("Admission", "PASSED");
186
266
  if (isNative && hasIrWasm && binding) {
187
- display.keyValue("Execution", "Real WASM sandbox");
267
+ display.keyValue("Execution", "Sandbox verified");
188
268
  }
189
269
  else {
190
- display.keyValue("Execution", "Deterministic estimation");
270
+ display.keyValue("Execution", "Estimated");
191
271
  }
192
272
  if (options.cloud) {
193
273
  try {
194
274
  await (0, auth_js_1.requireAuth)();
195
- display.info("Submitting to cloud Arena...");
275
+ const cs = display.spinner("Submitting to cloud Arena...");
196
276
  const manifestPath = (0, node_path_1.join)(geneDir, ".cloud-manifest.json");
197
277
  let cloudGeneId = null;
198
278
  if ((0, node_fs_1.existsSync)(manifestPath)) {
@@ -200,8 +280,9 @@ exports.arenaSubmitCommand = new commander_1.Command("submit")
200
280
  cloudGeneId = manifest.cloud_id;
201
281
  }
202
282
  if (!cloudGeneId) {
283
+ cs.stop();
203
284
  display.warn("Gene not published to cloud yet. Run 'rotifer publish " +
204
- name +
285
+ geneName +
205
286
  "' first, then submit to cloud Arena.");
206
287
  }
207
288
  else {
@@ -212,15 +293,17 @@ exports.arenaSubmitCommand = new commander_1.Command("submit")
212
293
  latency_score: fitness.latencyScore,
213
294
  resource_efficiency: fitness.resourceEfficiency,
214
295
  });
296
+ cs.stop();
215
297
  display.success("Submitted to cloud Arena");
216
298
  display.keyValue("Cloud Rank", `#${cloudEntry.rank || "pending"}`);
217
299
  }
218
300
  }
219
301
  catch (err) {
220
302
  display.error(`Cloud submit failed: ${err.message}`);
303
+ display.hint("Check your network connection and login status with 'rotifer whoami'.");
221
304
  }
222
305
  }
223
306
  console.log();
224
- display.info("View rankings: rotifer arena list --domain " + phenotype.domain);
307
+ display.hint("View rankings: rotifer arena list --domain " + phenotype.domain);
225
308
  });
226
309
  //# sourceMappingURL=arena-submit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arena-submit.js","sourceRoot":"","sources":["../../src/commands/arena-submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arena-submit.js","sourceRoot":"","sources":["../../src/commands/arena-submit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"arena-watch.d.ts","sourceRoot":"","sources":["../../src/commands/arena-watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyJpC,eAAO,MAAM,iBAAiB,SAmE1B,CAAC"}
1
+ {"version":3,"file":"arena-watch.d.ts","sourceRoot":"","sources":["../../src/commands/arena-watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuIpC,eAAO,MAAM,iBAAiB,SAmE1B,CAAC"}
@@ -32,19 +32,17 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
35
  Object.defineProperty(exports, "__esModule", { value: true });
39
36
  exports.arenaWatchCommand = void 0;
40
37
  const commander_1 = require("commander");
41
38
  const node_fs_1 = require("node:fs");
42
39
  const node_path_1 = require("node:path");
43
- const node_crypto_1 = require("node:crypto");
44
- const chalk_1 = __importDefault(require("chalk"));
45
40
  const display = __importStar(require("../utils/display.js"));
41
+ const palette_js_1 = require("../utils/palette.js");
46
42
  const config_js_1 = require("../utils/config.js");
43
+ const project_root_js_1 = require("../utils/project-root.js");
47
44
  const client_js_1 = require("../cloud/client.js");
45
+ const content_hash_js_1 = require("../utils/content-hash.js");
48
46
  function loadRankings(root, genesDir, domainFilter) {
49
47
  if (!(0, node_fs_1.existsSync)(genesDir))
50
48
  return [];
@@ -57,9 +55,8 @@ function loadRankings(root, genesDir, domainFilter) {
57
55
  const phenotype = JSON.parse((0, node_fs_1.readFileSync)(phenotypePath, "utf-8"));
58
56
  if (domainFilter && phenotype.domain !== domainFilter)
59
57
  continue;
60
- const phenoStr = JSON.stringify(phenotype);
61
- const geneId = (0, node_crypto_1.createHash)("sha256").update(phenoStr).digest("hex");
62
- const seed = parseInt(geneId.slice(0, 8), 16);
58
+ const gId = (0, content_hash_js_1.contentHash)(phenotype);
59
+ const seed = parseInt(gId.slice(0, 8), 16);
63
60
  const isNative = phenotype.fidelity === "Native";
64
61
  const baseFitness = isNative ? 0.7 : 0.45;
65
62
  const variance = (seed % 250) / 1000;
@@ -68,7 +65,7 @@ function loadRankings(root, genesDir, domainFilter) {
68
65
  entries.push({
69
66
  rank: 0,
70
67
  name,
71
- geneId,
68
+ geneId: gId,
72
69
  domain: phenotype.domain || "unknown",
73
70
  fitness,
74
71
  safety,
@@ -110,51 +107,39 @@ function computeDiffs(prev, curr) {
110
107
  return diffs;
111
108
  }
112
109
  function renderTable(entries) {
113
- const col = { rank: 4, name: 28, domain: 14, fg: 9, vg: 9, fidelity: 10 };
114
- console.log(" " +
115
- padRight("#", col.rank) +
116
- padRight("Name", col.name) +
117
- padRight("Domain", col.domain) +
118
- padRight("F(g)", col.fg) +
119
- padRight("V(g)", col.vg) +
120
- "Fidelity");
121
- console.log(" " + "\u2500".repeat(74));
122
- for (const e of entries) {
123
- const fidelityColor = e.fidelity === "Native" ? chalk_1.default.green : chalk_1.default.dim;
124
- console.log(" " +
125
- padRight(String(e.rank), col.rank) +
126
- padRight(e.name, col.name) +
127
- padRight(e.domain, col.domain) +
128
- padRight(e.fitness.toFixed(4), col.fg) +
129
- padRight(e.safety.toFixed(4), col.vg) +
130
- fidelityColor(e.fidelity));
131
- }
110
+ display.table(entries, [
111
+ { key: "rank", label: "#", width: 4, format: (v) => String(v) },
112
+ { key: "name", label: "Name", width: 28 },
113
+ { key: "domain", label: "Domain", width: 14 },
114
+ { key: "fitness", label: "F(g)", width: 9, format: (v) => v.toFixed(4) },
115
+ { key: "safety", label: "V(g)", width: 9, format: (v) => v.toFixed(4) },
116
+ { key: "fidelity", label: "Fidelity", width: 10, format: (v) => (0, palette_js_1.fidelityColor)(String(v)) },
117
+ ]);
132
118
  }
133
119
  function renderDiffs(diffs) {
134
120
  for (const d of diffs) {
121
+ const name = d.name.padEnd(24);
135
122
  switch (d.type) {
136
123
  case "new":
137
- console.log(chalk_1.default.green(` + NEW ${padRight(d.name, 24)} rank #${d.newRank} F(g)=${d.newFitness?.toFixed(4)}`));
124
+ console.log(palette_js_1.c.success(` + NEW ${name} rank #${d.newRank} F(g)=${d.newFitness?.toFixed(4)}`));
138
125
  break;
139
126
  case "improved":
140
- console.log(chalk_1.default.green(` \u2191 UP ${padRight(d.name, 24)} #${d.oldRank} \u2192 #${d.newRank}`));
127
+ console.log(palette_js_1.c.success(` ${palette_js_1.icon.up} UP ${name} #${d.oldRank} ${palette_js_1.icon.arrow} #${d.newRank}`));
141
128
  break;
142
129
  case "dropped":
143
- console.log(chalk_1.default.red(` \u2193 DOWN ${padRight(d.name, 24)} #${d.oldRank} \u2192 #${d.newRank}`));
130
+ console.log(palette_js_1.c.error(` ${palette_js_1.icon.down} DOWN ${name} #${d.oldRank} ${palette_js_1.icon.arrow} #${d.newRank}`));
144
131
  break;
145
132
  case "eliminated":
146
- console.log(chalk_1.default.red(` \u2717 OUT ${padRight(d.name, 24)} was #${d.oldRank}`));
133
+ console.log(palette_js_1.c.error(` ${palette_js_1.icon.error} OUT ${name} was #${d.oldRank}`));
147
134
  break;
148
- case "fitness_changed":
149
- const arrow = (d.newFitness ?? 0) > (d.oldFitness ?? 0) ? chalk_1.default.green("\u2191") : chalk_1.default.red("\u2193");
150
- console.log(chalk_1.default.yellow(` ~ FIT ${padRight(d.name, 24)} ${d.oldFitness?.toFixed(4)} ${arrow} ${d.newFitness?.toFixed(4)}`));
135
+ case "fitness_changed": {
136
+ const arrow = (d.newFitness ?? 0) > (d.oldFitness ?? 0) ? palette_js_1.c.success(palette_js_1.icon.up) : palette_js_1.c.error(palette_js_1.icon.down);
137
+ console.log(palette_js_1.c.warn(` ~ FIT ${name} ${d.oldFitness?.toFixed(4)} ${arrow} ${d.newFitness?.toFixed(4)}`));
151
138
  break;
139
+ }
152
140
  }
153
141
  }
154
142
  }
155
- function padRight(str, len) {
156
- return str.length >= len ? str : str + " ".repeat(len - str.length);
157
- }
158
143
  exports.arenaWatchCommand = new commander_1.Command("watch")
159
144
  .description("Watch Arena rankings in real-time (live updates)")
160
145
  .argument("<domain>", "domain to watch (or 'all' for all domains)")
@@ -167,11 +152,11 @@ exports.arenaWatchCommand = new commander_1.Command("watch")
167
152
  await watchCloudArena(domainFilter, intervalMs);
168
153
  return;
169
154
  }
170
- const root = (0, config_js_1.getProjectRoot)();
155
+ const root = (0, project_root_js_1.requireProjectRoot)();
171
156
  const config = (0, config_js_1.loadConfig)(root);
172
157
  const genesDir = (0, node_path_1.join)(root, config.genes_dir);
173
- display.header("Arena Watch" + (domainFilter ? ` \u2014 ${domainFilter}` : ""));
174
- display.info(`Refreshing every ${intervalMs}ms \u2014 press Ctrl+C to stop`);
158
+ display.header("Arena Watch" + (domainFilter ? ` ${domainFilter}` : ""));
159
+ display.info(`Refreshing every ${intervalMs}ms press Ctrl+C to stop`);
175
160
  console.log();
176
161
  let prev = loadRankings(root, genesDir, domainFilter);
177
162
  let pollCount = 0;
@@ -186,7 +171,7 @@ exports.arenaWatchCommand = new commander_1.Command("watch")
186
171
  if (diffs.length > 0) {
187
172
  totalChanges += diffs.length;
188
173
  const ts = new Date().toLocaleTimeString();
189
- console.log(chalk_1.default.dim(` ── ${ts} ── ${diffs.length} change(s) detected`));
174
+ console.log(palette_js_1.c.muted(` ── ${ts} ── ${diffs.length} change(s) detected`));
190
175
  renderDiffs(diffs);
191
176
  console.log();
192
177
  }
@@ -197,15 +182,15 @@ exports.arenaWatchCommand = new commander_1.Command("watch")
197
182
  const elapsed = ((Date.now() - startTime) / 1000).toFixed(0);
198
183
  console.log();
199
184
  display.header("Watch Summary");
200
- display.keyValue("Duration", `${elapsed}s`);
201
- display.keyValue("Polls", String(pollCount));
202
- display.keyValue("Total changes", String(totalChanges));
203
- display.keyValue("Final gene count", String(prev.length));
185
+ display.kv("Duration", `${elapsed}s`);
186
+ display.kv("Polls", String(pollCount));
187
+ display.kv("Total changes", String(totalChanges));
188
+ display.kv("Final gene count", String(prev.length));
204
189
  if (prev.length > 0) {
205
190
  const domains = new Set(prev.map((e) => e.domain));
206
- display.keyValue("Domains", Array.from(domains).join(", "));
191
+ display.kv("Domains", Array.from(domains).join(", "));
207
192
  const avgFitness = prev.reduce((sum, e) => sum + e.fitness, 0) / prev.length;
208
- display.keyValue("Avg fitness", avgFitness.toFixed(4));
193
+ display.kv("Avg fitness", avgFitness.toFixed(4));
209
194
  }
210
195
  console.log();
211
196
  process.exit(0);
@@ -214,8 +199,8 @@ exports.arenaWatchCommand = new commander_1.Command("watch")
214
199
  process.on("SIGTERM", shutdown);
215
200
  });
216
201
  async function watchCloudArena(domainFilter, intervalMs = 5000) {
217
- display.header("Cloud Arena Watch" + (domainFilter ? ` \u2014 ${domainFilter}` : ""));
218
- display.info(`Polling every ${intervalMs}ms \u2014 press Ctrl+C to stop`);
202
+ display.header("Cloud Arena Watch" + (domainFilter ? ` ${domainFilter}` : ""));
203
+ display.info(`Polling every ${intervalMs}ms press Ctrl+C to stop`);
219
204
  console.log();
220
205
  let prevEntries = [];
221
206
  let pollCount = 0;
@@ -228,7 +213,9 @@ async function watchCloudArena(domainFilter, intervalMs = 5000) {
228
213
  console.log();
229
214
  }
230
215
  catch (err) {
231
- display.error(`Failed to fetch cloud rankings: ${err.message}`);
216
+ const msg = err instanceof Error ? err.message : "Failed to fetch cloud rankings";
217
+ display.error(msg);
218
+ display.hint("Check your network connection and try again.");
232
219
  process.exit(1);
233
220
  }
234
221
  const timer = setInterval(async () => {
@@ -241,20 +228,20 @@ async function watchCloudArena(domainFilter, intervalMs = 5000) {
241
228
  for (const curr of currEntries) {
242
229
  const prev = prevMap.get(curr.gene_id);
243
230
  if (!prev) {
244
- changes.push(chalk_1.default.green(` + NEW ${padRight(curr.gene_name, 24)} rank #${curr.rank}`));
231
+ changes.push(palette_js_1.c.success(` + NEW ${curr.gene_name.padEnd(24)} rank #${curr.rank}`));
245
232
  }
246
233
  else if (curr.rank < prev.rank) {
247
- changes.push(chalk_1.default.green(` \u2191 UP ${padRight(curr.gene_name, 24)} #${prev.rank} \u2192 #${curr.rank}`));
234
+ changes.push(palette_js_1.c.success(` ${palette_js_1.icon.up} UP ${curr.gene_name.padEnd(24)} #${prev.rank} ${palette_js_1.icon.arrow} #${curr.rank}`));
248
235
  }
249
236
  else if (curr.rank > prev.rank) {
250
- changes.push(chalk_1.default.red(` \u2193 DOWN ${padRight(curr.gene_name, 24)} #${prev.rank} \u2192 #${curr.rank}`));
237
+ changes.push(palette_js_1.c.error(` ${palette_js_1.icon.down} DOWN ${curr.gene_name.padEnd(24)} #${prev.rank} ${palette_js_1.icon.arrow} #${curr.rank}`));
251
238
  }
252
239
  }
253
240
  if (changes.length > 0) {
254
241
  totalChanges += changes.length;
255
242
  const ts = new Date().toLocaleTimeString();
256
- console.log(chalk_1.default.dim(` \u2500\u2500 ${ts} \u2500\u2500 ${changes.length} change(s)`));
257
- changes.forEach((c) => console.log(c));
243
+ console.log(palette_js_1.c.muted(` ── ${ts} ── ${changes.length} change(s)`));
244
+ changes.forEach((ch) => console.log(ch));
258
245
  console.log();
259
246
  }
260
247
  prevEntries = currEntries;
@@ -268,10 +255,10 @@ async function watchCloudArena(domainFilter, intervalMs = 5000) {
268
255
  const elapsed = ((Date.now() - startTime) / 1000).toFixed(0);
269
256
  console.log();
270
257
  display.header("Cloud Watch Summary");
271
- display.keyValue("Duration", `${elapsed}s`);
272
- display.keyValue("Polls", String(pollCount));
273
- display.keyValue("Total changes", String(totalChanges));
274
- display.keyValue("Final gene count", String(prevEntries.length));
258
+ display.kv("Duration", `${elapsed}s`);
259
+ display.kv("Polls", String(pollCount));
260
+ display.kv("Total changes", String(totalChanges));
261
+ display.kv("Final gene count", String(prevEntries.length));
275
262
  console.log();
276
263
  process.exit(0);
277
264
  };
@@ -279,32 +266,17 @@ async function watchCloudArena(domainFilter, intervalMs = 5000) {
279
266
  process.on("SIGTERM", shutdown);
280
267
  }
281
268
  function renderCloudTable(entries) {
282
- const col = { rank: 4, name: 22, owner: 14, domain: 14, fg: 9, vg: 9, sr: 7, lat: 7, re: 7, fidelity: 10 };
283
- console.log(" " +
284
- padRight("#", col.rank) +
285
- padRight("Name", col.name) +
286
- padRight("Owner", col.owner) +
287
- padRight("Domain", col.domain) +
288
- padRight("F(g)", col.fg) +
289
- padRight("V(g)", col.vg) +
290
- padRight("SR", col.sr) +
291
- padRight("Lat", col.lat) +
292
- padRight("RE", col.re) +
293
- "Fidelity");
294
- console.log(" " + "\u2500".repeat(103));
295
- for (const e of entries) {
296
- const fidelityColor = e.fidelity === "Native" ? chalk_1.default.green : chalk_1.default.dim;
297
- console.log(" " +
298
- padRight(String(e.rank), col.rank) +
299
- padRight(e.gene_name, col.name) +
300
- padRight(e.owner, col.owner) +
301
- padRight(e.domain, col.domain) +
302
- padRight(e.fitness.toFixed(4), col.fg) +
303
- padRight(e.safety.toFixed(4), col.vg) +
304
- padRight(e.success_rate?.toFixed(2) ?? "—", col.sr) +
305
- padRight(e.latency_score?.toFixed(2) ?? "—", col.lat) +
306
- padRight(e.resource_efficiency?.toFixed(2) ?? "—", col.re) +
307
- fidelityColor(e.fidelity));
308
- }
269
+ display.table(entries, [
270
+ { key: "rank", label: "#", width: 4, format: (v) => String(v) },
271
+ { key: "gene_name", label: "Name", width: 22 },
272
+ { key: "owner", label: "Creator", width: 14 },
273
+ { key: "domain", label: "Domain", width: 14 },
274
+ { key: "fitness", label: "F(g)", width: 9, format: (v) => v.toFixed(4) },
275
+ { key: "safety", label: "V(g)", width: 9, format: (v) => v.toFixed(4) },
276
+ { key: "success_rate", label: "SR", width: 7, format: (v) => v != null ? v.toFixed(2) : "—" },
277
+ { key: "latency_score", label: "Lat", width: 7, format: (v) => v != null ? v.toFixed(2) : "—" },
278
+ { key: "resource_efficiency", label: "RE", width: 7, format: (v) => v != null ? v.toFixed(2) : "—" },
279
+ { key: "fidelity", label: "Fidelity", width: 10, format: (v) => (0, palette_js_1.fidelityColor)(String(v)) },
280
+ ]);
309
281
  }
310
282
  //# sourceMappingURL=arena-watch.js.map