@rotifer/playground 0.8.1 → 0.8.6

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