@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
package/CHANGELOG.md CHANGED
@@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.8.5] - 2026-04-08
9
+
10
+ ### Changed
11
+
12
+ - **Public release-line consolidation** — aligned the CLI package with the current public `v0.8.5` release line across rotifer.dev, IDE/plugin distribution surfaces, and MCP installation metadata
13
+ - **Shipped v0.8.x surface clarified** — current release messaging now reflects the already-shipped Skill→Gene migration path, CLI UX refresh, version update notifications, and related ecosystem-facing improvements from the `v0.8.x` cycle
14
+ - **Reserved version gap documented** — `v0.8.2` to `v0.8.4` remain reserved internal iteration numbers rather than retroactively published public releases
15
+
16
+ ## [0.8.1] - 2026-03-27
17
+
18
+ ### Added
19
+
20
+ - **API Apocalypse experiment** — chaos engineering benchmark proving fitness-based auto-failover: Rotifer Agent 83.3% source uptime vs Baseline 33.3% (2.5x improvement, 0 human intervention)
21
+ - **DomainFailoverEngine** — L2 Calibration auto-failover integrated into core runtime with TryPool composition type
22
+ - **`rotifer wrap --from-clawhub`** — one-command Skill→Gene migration tool (100% coverage on Top 50 ClawHub Skills)
23
+ - **V(g) Top 50 scan report** — automated quality analysis of ClawHub ecosystem (38,141 Skills, 25M downloads)
24
+ - **AI documentation quality** — 19-question Golden QA test suite + LLM-as-Judge evaluator with CI integration
25
+ - 6 weather parser genes for experiment (3 sources × 2 format versions)
26
+ - SVG animation generator with rotifer.dev design system alignment
27
+ - Experiment results with 3 reproducible runs
28
+
29
+ ### Changed
30
+
31
+ - **Reputation model alignment** — cold-start `R(g)` now uses phase-based weights (W0/W1/W2) instead of a fixed 0.5/0.3/0.2 split
32
+ - **Creator reputation** — now uses a diminishing-returns weighted sum of positive gene reputations, instead of a plain average
33
+ - **Arena safety scoring** — `V(g)` now incorporates the shipped static security scanner (`Security_Leak_Risk`) during `arena submit`
34
+
8
35
  ## [0.8.0] - 2026-02-17
9
36
 
10
37
  ### Added
@@ -54,12 +81,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
54
81
 
55
82
  ### Added
56
83
 
57
- - **CLI: `rotifer info <gene-id>`** — display detailed gene information (description, domain, version, fitness, reputation)
84
+ - **CLI: `rotifer info <gene-ref>`** — display detailed gene information (description, domain, version, fitness, reputation)
58
85
  - **CLI: `rotifer list`** — list local genes in current project with optional `--domain` filter
59
86
  - **CLI: `rotifer run <gene-name>`** — directly execute a single gene with WASM sandbox or Node.js fallback
60
87
  - **CLI: `rotifer versions <owner> <name>`** — display version history chain for a gene
61
88
  - **CLI: `rotifer whoami`** — show current authentication status
62
- - **CLI: `rotifer stats <gene-id>`** — display download statistics for a gene
89
+ - **CLI: `rotifer stats <gene-ref>`** — display download statistics for a gene
63
90
  - **CLI: `rotifer compare <id...>`** — compare 2-5 genes side by side by fitness and reputation
64
91
 
65
92
  ### Changed
@@ -166,7 +193,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
166
193
  - Phenotype schema display (inputSchema/outputSchema)
167
194
  - Stats: version, R(g), downloads, WASM size, dates
168
195
  - One-click install command copy
169
- - **Developer Profile Pages** — each developer has a page at `/developers/[user]/` with:
196
+ - **Creator Profile Pages** — each creator has a page at `/developers/[user]/` with:
170
197
  - R(d) reputation score and stats grid
171
198
  - Published gene list with links
172
199
  - **Gene Registry Upgrade** — `/genes/` listing page now fetches from Cloud API
@@ -253,13 +280,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
253
280
 
254
281
  ### Added
255
282
 
256
- - **Reputation System** — measurable trust signals for genes and developers
283
+ - **Reputation System** — measurable trust signals for genes and creators
257
284
  - Gene reputation R(g) = α·Arena + β·Usage + γ·Stability (weights: 0.5, 0.3, 0.2)
258
- - Developer reputation R(d) = avg(gene reputations) + community bonus
285
+ - Creator reputation R(d) initially launched as a plain average of gene reputations plus community bonus
259
286
  - Time-based decay (5%/month, floor at 0.01) prevents reputation stagnation
260
- - `rotifer reputation <gene-id>` — view gene reputation breakdown
261
- - `rotifer reputation --mine` — view your developer reputation
262
- - `rotifer reputation --leaderboard` — top developers ranked by reputation
287
+ - `rotifer reputation <gene-ref>` — view gene reputation breakdown
288
+ - `rotifer reputation --mine` — view your creator reputation
289
+ - `rotifer reputation --leaderboard` — top creators ranked by reputation
263
290
  - Database migration `003_reputation.sql` with `gene_reputation` and `developer_reputation` tables
264
291
  - Server-side reputation computation via PostgreSQL functions
265
292
  - Reputation leaderboard API (`get_reputation_leaderboard()`)
@@ -296,16 +323,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
296
323
 
297
324
  ### Added
298
325
 
299
- - **Cloud Binding** — Cross-developer gene sharing via Supabase-backed REST API
326
+ - **Cloud Binding** — Cross-creator gene sharing via Supabase-backed REST API
300
327
  - `rotifer login` — GitHub OAuth authentication via PKCE flow
301
328
  - `rotifer logout` — Clear cloud credentials
302
329
  - `rotifer publish <gene>` — Upload gene (phenotype + WASM) to cloud registry, saves `.cloud-manifest.json`
303
330
  - `rotifer search [query]` — Search and browse cloud gene registry
304
- - `rotifer install <gene-id>` — Download gene from cloud to local project
331
+ - `rotifer install <gene-ref>` — Download gene from cloud to local project
305
332
  - Cloud Binding REST API specification (`docs/cloud-binding-api.md`)
306
333
  - Supabase database schema with RLS policies (see `supabase/README.md` for self-hosting guide)
307
334
 
308
- - **Cloud Arena** — Remote Arena competition across developers
335
+ - **Cloud Arena** — Remote Arena competition across creators
309
336
  - `rotifer arena submit --cloud` — Submit gene to cloud Arena
310
337
  - `rotifer arena list --cloud` — View cloud Arena rankings
311
338
  - `rotifer arena watch --cloud` — Real-time cloud ranking updates (polling)
package/README.md CHANGED
@@ -5,11 +5,11 @@
5
5
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE)
6
6
  [![Node.js](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen)](https://nodejs.org/)
7
7
  [![Protocol](https://img.shields.io/badge/Protocol-Frozen-orange)](https://github.com/rotifer-protocol/rotifer-spec)
8
- [![Discord](https://img.shields.io/discord/placeholder?label=Discord&logo=discord&color=5865F2)](https://discord.gg/6d4JrfMr)
8
+ [![Discord](https://img.shields.io/discord/placeholder?label=Discord&logo=discord&color=5865F2)](https://rotifer.dev/discord)
9
9
 
10
10
  Development environment for the **Rotifer Protocol** — build genes, compete in Arenas, share via Cloud, and simulate agent evolution.
11
11
 
12
- > **Status:** v0.8.0 (Iron Shell) Security hardening, WASM sandbox testing, P2P Protocol RFC, Epoch automation, AI docs assistant, WebMCP Phase 1, plus all v0.7 features (Gene lifecycle, IR compiler, Cloud Binding, Reputation, V(g) scanner, badges, MCP Server). P2P implementation and L4 Collective Immunity are planned — see [Implementation Status](#implementation-status) below.
12
+ > **Status:** v0.8.5public playground for gene development, Arena competition, and protocol experimentation. This public release line consolidates the shipped `v0.8.x` surface into one coherent version. See [CHANGELOG.md](CHANGELOG.md) for detailed release history. P2P implementation and L4 Collective Immunity are still planned — see [Implementation Status](#implementation-status) below.
13
13
 
14
14
  ---
15
15
 
@@ -74,7 +74,7 @@ You see an Arena with 6 genes ranked by fitness. No configuration needed.
74
74
  ```bash
75
75
  rotifer scan genes/ # Discover candidate functions
76
76
  rotifer wrap hello-world # Wrap as a gene (generates Phenotype)
77
- rotifer test hello-world # Run L2 sandbox tests (WASM sandbox for compiled genes)
77
+ rotifer test hello-world # Run sandbox tests (WASM sandbox for compiled genes)
78
78
  rotifer test hello-world --compliance # Run structural compliance checks
79
79
  rotifer arena submit hello-world # Submit to Arena (admission gate)
80
80
  rotifer arena list # See your gene's ranking
@@ -95,7 +95,7 @@ export function express(input: { query: string }) {
95
95
  EOF
96
96
 
97
97
  rotifer wrap my-search --domain search
98
- rotifer compile my-search # TS → JS → WASM (Javy) → Rotifer IR
98
+ rotifer compile my-search # TS → JS → WASM → Rotifer IR
99
99
  rotifer arena submit my-search # Watch it climb the rankings
100
100
  rotifer arena list --domain search # Compare against Genesis genes
101
101
 
@@ -109,7 +109,7 @@ rotifer agent run search-bot --input '{"query":"rotifer protocol"}'
109
109
  rotifer agent run search-bot --no-sandbox # Force Node.js fallback
110
110
  ```
111
111
 
112
- **v0.3 highlight:** `rotifer compile` auto-detects TypeScript genes and compiles them to Native WASM via [Javy](https://github.com/bytecodealliance/javy) (QuickJS→WASM). No separate toolchain required.
112
+ `rotifer compile` auto-detects TypeScript genes and compiles them to Native WASM. No separate toolchain required.
113
113
 
114
114
  ---
115
115
 
@@ -119,16 +119,15 @@ rotifer agent run search-bot --no-sandbox # Force Node.js fallback
119
119
  playground/
120
120
  ├── crates/
121
121
  │ ├── rotifer-core/ Rust: types, sandbox, arena, algebra, fitness, storage
122
- │ └── rotifer-napi/ napi-rs bridge: Rust ↔ Node.js FFI
123
- ├── src/ TypeScript CLI (commander.js)
124
- │ ├── commands/ 16 CLI commands
122
+ │ └── rotifer-napi/ Native bridge: Rust ↔ Node.js FFI
123
+ ├── src/ TypeScript CLI and supporting modules
124
+ │ ├── commands/ CLI command modules
125
125
  │ ├── cloud/ Cloud Binding client (auth, API, types)
126
- ├── utils/ Config, display, NAPI binding, Javy compiler
127
- │ └── errors/ Rust-style error formatting
128
- ├── genes/ 5 Genesis genes (bundled)
126
+ └── utils/ Config, display, native binding, IR compiler
127
+ ├── genes/ Bundled gene directories
129
128
  ├── supabase/ Cloud Binding self-hosting guide
130
129
  ├── templates/ Gene + composition scaffolds
131
- └── tests/ Unit + E2E test suites (114 tests)
130
+ └── tests/ Unit + E2E test suites
132
131
  ```
133
132
 
134
133
  ### Layers
@@ -136,31 +135,45 @@ playground/
136
135
  | Layer | Technology | Responsibility |
137
136
  |-------|-----------|----------------|
138
137
  | **CLI** | TypeScript + commander.js | User interface, command routing, display |
139
- | **Bridge** | napi-rs (cdylib) | Rust-to-Node.js FFI binding |
140
- | **Core** | Rust + wasmtime | WASM sandbox (Direct + WASI), Arena engine, Algebra executor, Fitness computation, SQLite storage |
138
+ | **Bridge** | Native bridge (cdylib) | Rust-to-Node.js FFI binding |
139
+ | **Core** | Rust + WASM runtime | WASM sandbox (Direct + WASI), Arena engine, Algebra executor, Fitness computation, SQLite storage |
141
140
 
142
141
  ---
143
142
 
144
143
  ## CLI Commands
145
144
 
145
+ Run `rotifer --help` for the grouped command list. The CLI has **18** primary top-level commands (Development, Cloud, the first four Discovery commands, and Arena & Agents). Six more top-level commands complete the tree: `versions` (Discovery), then `vg`, `network`, `self-update`, `config`, and `whoami` (Tools / Other)—**24** names total.
146
+
146
147
  | Command | Description |
147
148
  |---------|-------------|
148
- | `rotifer init [name]` | Initialize a new gene project with Genesis genes |
149
- | `rotifer scan [path]` | Scan source files for candidate gene functions |
150
- | `rotifer wrap <name>` | Wrap a function as a Rotifer gene |
151
- | `rotifer test [name]` | Test a gene (WASM sandbox preferred, `--compliance` for structural checks) |
152
- | `rotifer compile [name]` | Compile gene to Rotifer IR (auto TS→WASM via Javy) |
153
- | `rotifer arena submit <name>` | Submit a gene to the Arena (`--cloud` for Cloud Arena) |
154
- | `rotifer arena list` | List Arena rankings (`--cloud` for Cloud Arena) |
155
- | `rotifer arena watch <domain>` | Watch Arena rankings live (`--cloud` for Cloud Arena) |
156
- | `rotifer login` | Log in to Rotifer Cloud via GitHub OAuth |
149
+ | `rotifer init [gene-name]` | Initialize a new gene project with Genesis genes |
150
+ | `rotifer scan [path]` | Scan for candidate genes and local skills |
151
+ | `rotifer wrap <gene-name>` | Wrap a function or SKILL.md as a gene |
152
+ | `rotifer test [gene-name]` | Test a gene (WASM sandbox preferred, `--compliance` for structural checks) |
153
+ | `rotifer compile [gene-name]` | Compile gene to Rotifer IR (auto TS→WASM) |
154
+ | `rotifer run <gene-name>` | Execute a single local gene directly |
155
+ | `rotifer list` | List local genes in the current project |
156
+ | `rotifer login` | Log in to Rotifer Cloud (OAuth) |
157
157
  | `rotifer logout` | Log out from Rotifer Cloud |
158
- | `rotifer publish <name>` | Publish a gene to Rotifer Cloud |
158
+ | `rotifer publish [gene-name]` | Publish gene(s) to Rotifer Cloud |
159
159
  | `rotifer search [query]` | Search genes on Rotifer Cloud |
160
- | `rotifer install <gene-id>` | Install a gene from Rotifer Cloud |
161
- | `rotifer agent create <name>` | Create an Agent (`--composition Seq\|Par\|Cond\|Try`) |
160
+ | `rotifer install <gene-ref>` | Install a gene from Cloud (UUID, name, or content hash) |
161
+ | `rotifer info <gene-ref>` | View gene details (local or Cloud) |
162
+ | `rotifer stats <gene-ref>` | View download statistics for a gene |
163
+ | `rotifer compare [gene-refs...]` | Compare 2–5 genes by reputation and downloads |
164
+ | `rotifer reputation [gene-ref]` | View gene and creator reputation scores |
165
+ | `rotifer versions <owner> <gene-name>` | View version history chain for a gene |
166
+ | `rotifer arena submit <gene-name>` | Submit a gene to the Arena (`--cloud` for Cloud Arena) |
167
+ | `rotifer arena list` | List Arena rankings (`--cloud` for Cloud Arena) |
168
+ | `rotifer arena watch <domain>` | Watch Arena rankings live (`--cloud` for Cloud Arena) |
169
+ | `rotifer agent create <agent-name>` | Create an Agent (`--composition Seq\|Par\|Cond\|Try\|TryPool`) |
162
170
  | `rotifer agent list` | List all agents |
163
- | `rotifer agent run <name>` | Execute genome pipeline (WASM sandbox, `--no-sandbox` for Node.js) |
171
+ | `rotifer agent run <agent-name>` | Execute genome pipeline (WASM sandbox, `--no-sandbox` for Node.js) |
172
+ | `rotifer vg [path]` | V(g) security scan for gene/skill code |
173
+ | `rotifer network` | P2P gene network commands (see `rotifer network --help`) |
174
+ | `rotifer self-update` | Check for updates and upgrade Rotifer packages |
175
+ | `rotifer config` | Manage global Rotifer configuration |
176
+ | `rotifer whoami` | Show current authentication status |
164
177
 
165
178
  ---
166
179
 
@@ -194,17 +207,28 @@ See `templates/composition/` for JSON examples.
194
207
 
195
208
  ---
196
209
 
210
+ ## Examples
211
+
212
+ The `examples/` directory contains reference implementations and experiments:
213
+
214
+ | Directory | Description |
215
+ |-----------|-------------|
216
+ | `examples/mcp-migration/` | How to migrate MCP Tools into Rotifer Genes |
217
+ | `examples/api-apocalypse/` | API fault-tolerance experiment — baseline vs Rotifer agent with domain failover |
218
+
219
+ ---
220
+
197
221
  ## Development
198
222
 
199
223
  ```bash
200
224
  git clone https://github.com/rotifer-protocol/rotifer-playground.git
201
- cd playground
225
+ cd rotifer-playground
202
226
 
203
227
  # TypeScript CLI
204
228
  npm install
205
229
  npm run build # Build to dist/
206
- npm test # Run 114 TypeScript tests
207
- npm run lint # Type check only
230
+ npm test # Run the TypeScript test suite (Vitest)
231
+ npm run lint # Type-check and lint src/
208
232
 
209
233
  # Rust Core (requires Rust toolchain)
210
234
  cargo check -p rotifer-core
@@ -218,18 +242,18 @@ bash demo.sh
218
242
 
219
243
  ## Implementation Status
220
244
 
221
- > This project is in **alpha**. The table below shows the honest implementation status of each URAA layer as of v0.5.5.
245
+ > This project is in **alpha**. The table below shows the honest implementation status of each URAA layer.
222
246
 
223
247
  | URAA Layer | Spec Name | Status | What Works | What's Planned |
224
248
  |------------|-----------|--------|------------|----------------|
225
249
  | **L0** | Kernel | **~35%** | `L0Gate` pre-execution checks (domain, resource, network, filesystem); Audit log | EthicalBoundary, State Anchoring, Trust Anchor |
226
- | **L1** | Synthesis | **~95%** | WASM sandbox (wasmtime), IR compiler, Javy TS→WASM, NAPI bridge | Full WASI capability negotiation |
250
+ | **L1** | Synthesis | **~95%** | WASM sandbox, IR compiler, TS→WASM compilation, native bridge | Full WASI capability negotiation |
227
251
  | **L2** | Calibration | **~40%** | Schema validation, sandbox testing, `--compliance` checks | Static analysis, controlled field trial |
228
- | **L3** | Competition | **~60%** | Arena ranking, F(g) multiplicative model, R(g) reputation, Cloud Registry | P2P HLT broadcasting (stub only), hot-loading, retirement |
252
+ | **L3** | Competition | **~60%** | Arena ranking, F(g) multiplicative model, R(g) reputation, Cloud Registry | P2P HLT broadcasting (planned), hot-loading, retirement |
229
253
  | **L4** | Collective Immunity | **0%** | — | Threat broadcasting, emergency rollback, cross-node consensus |
230
254
  | **Algebra** | Composition | **~90%** | All 5 operators in Rust; CLI supports Seq/Par/Cond/Try | DataFlowGraph |
231
255
 
232
- **Key limitation:** L4 depends on L3's P2P network, which is currently a stub. Full L4 is targeted for v0.9+.
256
+ **Key limitation:** L4 depends on L3's P2P network, which is planned. Full L4 is targeted for v0.9+.
233
257
 
234
258
  ---
235
259
 
@@ -242,7 +266,7 @@ Targets **Rotifer Protocol Specification** (Frozen). See [Implementation Status]
242
266
  | **Full** | Phenotype, AlgebraExpr, Fitness F(g), Arena | Core gene lifecycle |
243
267
  | **Functional** | WASM Sandbox, L0 Gate, Reputation R(g) | L0 at ~35%, expanding |
244
268
  | **Simplified** | Agent Lifecycle, Gene Lifecycle, RotiferBinding | MVP subset |
245
- | **Stub/Planned** | P2P HLT, Formal Verification, Cross-Binding Consistency, ZK Proofs, L4 Immunity | Roadmap items |
269
+ | **Planned** | P2P HLT, Formal Verification, Cross-Binding Consistency, ZK Proofs, L4 Immunity | Roadmap items |
246
270
 
247
271
  Changes driven by implementation feedback are proposed through the ADR process.
248
272
 
@@ -250,24 +274,16 @@ Changes driven by implementation feedback are proposed through the ADR process.
250
274
 
251
275
  ## Roadmap
252
276
 
253
- - [x] **v0.1** Core CLI + Genesis genes + Arena
254
- - [x] **v0.2** — IR compiler pipeline, live Arena watching, NAPI bridge
255
- - [x] **v0.3** — Frontend SDK: TS→WASM auto-compilation via Javy, WASI sandbox support
256
- - [x] **v0.4** — Cloud Binding: publish/search/install genes, Cloud Arena, GitHub OAuth
257
- - [x] **v0.5** — Reputation System, developer documentation, L0 Gate
258
- - [x] **v0.5.5** — Foundation Hardening: WASM sandbox enforcement, L0 Gate integration, F(g) spec alignment
259
- - [ ] **v0.6** — Web Registry: dynamic gene pages, developer profiles, gene cold start (≥50 genes)
260
- - [ ] **v0.6.5** — Cross-Binding Proof: `RotiferBinding` trait, Web3 Mock Binding, IR interop validation
261
- - [ ] **v0.7** — Hybrid Gene, IDE plugins (Cursor/VS Code), developer dogfooding
262
- - [ ] **v0.8** — Security hardening, P2P protocol design (RFC)
263
- - [ ] **v0.9** — P2P network (metadata discovery), economic framework design
264
- - [ ] **v1.0** — Stable release: L0-L3 complete, economic system, security audit
277
+ See [CHANGELOG.md](CHANGELOG.md) for detailed release history. Upcoming milestones:
278
+
279
+ - **v0.9** — P2P network (metadata discovery), economic framework design
280
+ - **v1.0** — Stable release: L0-L3 complete, economic system, security audit
265
281
 
266
282
  ---
267
283
 
268
284
  ## Community
269
285
 
270
- - [Discord](https://discord.gg/6d4JrfMr) — Join the conversation
286
+ - [Discord](https://rotifer.dev/discord) — Join the conversation
271
287
  - [GitHub Discussions](https://github.com/rotifer-protocol/rotifer-playground/discussions) — Questions and proposals
272
288
 
273
289
  ## Contributing
package/README.zh.md CHANGED
@@ -5,11 +5,11 @@
5
5
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE)
6
6
  [![Node.js](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen)](https://nodejs.org/)
7
7
  [![Protocol](https://img.shields.io/badge/Protocol-Frozen-orange)](https://github.com/rotifer-protocol/rotifer-spec)
8
- [![Discord](https://img.shields.io/discord/placeholder?label=Discord&logo=discord&color=5865F2)](https://discord.gg/6d4JrfMr)
8
+ [![Discord](https://img.shields.io/discord/placeholder?label=Discord&logo=discord&color=5865F2)](https://rotifer.dev/discord)
9
9
 
10
10
  **Rotifer Protocol** 的开发环境——构建基因、运行 Arena 竞争、通过 Cloud 共享、模拟代理进化。
11
11
 
12
- > **状态:** v0.8.0(Iron Shell)— 安全加固、WASM 沙箱测试、P2P Protocol RFC、Epoch 自动化、AI 文档助手、WebMCP Phase 1,以及 v0.7 全部功能(基因生命周期、IR 编译器、Cloud Binding、声誉系统、V(g) 扫描器、徽章、MCP Server)。P2P 实现和 L4 集体免疫为规划中功能——详见下方[实现状态](#实现状态)。
12
+ > **状态:** v0.8.5——面向基因开发、Arena 竞争和协议实验的公开 Playground。本次公开版本线将已落地的 `v0.8.x` 能力收口为同一版本口径。详细版本历史请参见 [CHANGELOG.md](CHANGELOG.md)P2P 实现与 L4 集体免疫仍在规划中——详见下方[实现状态](#实现状态)。
13
13
 
14
14
  ---
15
15
 
@@ -109,7 +109,7 @@ rotifer agent run search-bot --input '{"query":"rotifer protocol"}'
109
109
  rotifer agent run search-bot --no-sandbox # 强制 Node.js 回退
110
110
  ```
111
111
 
112
- **v0.3 亮点:** `rotifer compile` 自动检测 TypeScript 基因,通过 [Javy](https://github.com/bytecodealliance/javy)(QuickJS→WASM)编译为原生 WASM,无需额外工具链。
112
+ **说明:** `rotifer compile` 自动检测 TypeScript 基因,通过 [Javy](https://github.com/bytecodealliance/javy)(QuickJS→WASM)编译为原生 WASM,无需额外工具链。
113
113
 
114
114
  ---
115
115
 
@@ -120,13 +120,14 @@ playground/
120
120
  ├── crates/
121
121
  │ ├── rotifer-core/ Rust: 类型、沙箱、Arena、代数、适应度、存储
122
122
  │ └── rotifer-napi/ napi-rs 桥接: Rust ↔ Node.js FFI
123
- ├── src/ TypeScript CLI (commander.js)
124
- │ ├── commands/ 11 个 CLI 命令
125
- │ ├── utils/ 配置、显示、NAPI 绑定、Javy 编译器
126
- │ └── errors/ Rust 风格的错误格式化
127
- ├── genes/ 5 Genesis 基因(内置)
123
+ ├── src/ TypeScript CLI 与支撑模块
124
+ │ ├── commands/ CLI 命令模块
125
+ │ ├── cloud/ Cloud Binding 客户端(auth、API、types)
126
+ │ └── utils/ 配置、显示、NAPI 绑定、IR 编译器
127
+ ├── genes/ 随仓库提供的 gene 目录
128
+ ├── supabase/ Cloud Binding 自托管指南
128
129
  ├── templates/ 基因 + 组合脚手架模板
129
- └── tests/ 单元测试 + E2E 测试(91 个测试)
130
+ └── tests/ 单元测试 + E2E 测试
130
131
  ```
131
132
 
132
133
  ### 分层
@@ -141,19 +142,38 @@ playground/
141
142
 
142
143
  ## CLI 命令
143
144
 
145
+ 运行 `rotifer --help` 查看按模块分组的命令列表。常用命令如下:
146
+
144
147
  | 命令 | 说明 |
145
148
  |------|------|
146
- | `rotifer init [name]` | 初始化新的基因项目(包含 Genesis 基因) |
147
- | `rotifer scan [path]` | 扫描源文件中的候选基因函数 |
148
- | `rotifer wrap <name>` | 将函数包装为 Rotifer 基因 |
149
- | `rotifer test [name]` | 测试基因(WASM 沙箱优先,`--compliance` 运行结构性检查) |
150
- | `rotifer compile [name]` | 编译基因为 Rotifer IR(自动 TS→WASM via Javy) |
151
- | `rotifer arena submit <name>` | 将基因提交到 Arena(`--cloud` 提交到 Cloud Arena) |
152
- | `rotifer arena list` | 列出 Arena 排名(`--cloud` 查看 Cloud Arena) |
153
- | `rotifer arena watch <domain>` | 观察 Arena 排名(`--cloud` 查看 Cloud Arena) |
154
- | `rotifer agent create <name>` | 创建 Agent(`--composition Seq\|Par\|Cond\|Try`) |
155
- | `rotifer agent list` | 列出所有 Agent |
156
- | `rotifer agent run <name>` | 执行基因组管线(WASM 沙箱,`--no-sandbox` Node.js) |
149
+ | `rotifer init [gene-name]` | 初始化新的 Rotifer 基因项目 |
150
+ | `rotifer scan [path]` | 扫描候选基因和本地技能 |
151
+ | `rotifer wrap <gene-name>` | 将函数或 `SKILL.md` 包装为基因 |
152
+ | `rotifer test [gene-name]` | 在沙箱中测试基因 |
153
+ | `rotifer compile [gene-name]` | 将基因编译为 Rotifer IRWASM) |
154
+ | `rotifer run <gene-name>` | 直接执行单个本地基因 |
155
+ | `rotifer list` | 列出当前项目中的本地基因 |
156
+ | `rotifer login` | 登录 Rotifer Cloud |
157
+ | `rotifer logout` | Rotifer Cloud 登出 |
158
+ | `rotifer publish [gene-name]` | 将基因发布到 Rotifer Cloud |
159
+ | `rotifer search [query]` | Rotifer Cloud 中搜索基因 |
160
+ | `rotifer install <gene-ref>` | 从 Rotifer Cloud 安装基因 |
161
+ | `rotifer info <gene-ref>` | 查看基因详情(本地或 Cloud) |
162
+ | `rotifer stats <gene-ref>` | 查看基因下载统计 |
163
+ | `rotifer compare [gene-refs...]` | 按声誉与下载量对比 2-5 个基因 |
164
+ | `rotifer reputation [gene-ref]` | 查看基因与创作者声誉分数 |
165
+ | `rotifer versions <owner> <gene-name>` | 查看某个基因的版本链 |
166
+ | `rotifer arena submit <gene-name>` | 将基因提交到 Arena 竞争 |
167
+ | `rotifer arena list` | 列出 Arena 排名 |
168
+ | `rotifer arena watch <domain>` | 实时观察 Arena 排名 |
169
+ | `rotifer agent create <agent-name>` | 用基因组创建 Agent |
170
+ | `rotifer agent list` | 列出全部 Agent |
171
+ | `rotifer agent run <agent-name>` | 执行 Agent 的基因组管线 |
172
+ | `rotifer vg [path]` | 对基因代码执行 V(g) 安全扫描 |
173
+ | `rotifer network` | P2P 基因网络命令 |
174
+ | `rotifer self-update` | 检查并升级 Rotifer 包 |
175
+ | `rotifer config` | 管理全局 Rotifer 配置 |
176
+ | `rotifer whoami` | 显示当前认证状态 |
157
177
 
158
178
  ---
159
179
 
@@ -187,17 +207,28 @@ JSON 示例参见 `templates/composition/`。
187
207
 
188
208
  ---
189
209
 
210
+ ## 示例
211
+
212
+ `examples/` 目录包含参考实现和实验:
213
+
214
+ | 目录 | 说明 |
215
+ |------|------|
216
+ | `examples/mcp-migration/` | 如何将 MCP Tool 迁移为 Rotifer Gene |
217
+ | `examples/api-apocalypse/` | API 容错实验——基线 Agent 与 Rotifer 域故障转移 Agent 的对比 |
218
+
219
+ ---
220
+
190
221
  ## 开发
191
222
 
192
223
  ```bash
193
224
  git clone https://github.com/rotifer-protocol/rotifer-playground.git
194
- cd playground
225
+ cd rotifer-playground
195
226
 
196
227
  # TypeScript CLI
197
228
  npm install
198
229
  npm run build # 构建到 dist/
199
- npm test # 运行 91 个 TypeScript 测试
200
- npm run lint # 仅类型检查
230
+ npm test # 运行 TypeScript 测试套件(Vitest)
231
+ npm run lint # 对 src/ 做类型检查和 lint
201
232
 
202
233
  # Rust Core(需要 Rust 工具链)
203
234
  cargo check -p rotifer-core
@@ -211,7 +242,7 @@ bash demo.sh
211
242
 
212
243
  ## 实现状态
213
244
 
214
- > 本项目处于 **alpha** 阶段。下表展示了截至 v0.5.5 各 URAA 层级的真实实现状态。
245
+ > 本项目处于 **alpha** 阶段。下表展示了当前各 URAA 层级的真实实现状态。
215
246
 
216
247
  | URAA 层级 | 规范名称 | 完成度 | 已可用 | 规划中 |
217
248
  |-----------|---------|--------|--------|--------|
@@ -243,24 +274,16 @@ bash demo.sh
243
274
 
244
275
  ## 路线图
245
276
 
246
- - [x] **v0.1** — 核心 CLI + Genesis 基因 + Arena
247
- - [x] **v0.2** — IR 编译器管线、实时 Arena 观察、NAPI 桥接
248
- - [x] **v0.3** — 前端 SDK:TS→WASM 自动编译 via Javy、WASI 沙箱支持
249
- - [x] **v0.4** — Cloud Binding:发布/搜索/安装基因、Cloud Arena、GitHub OAuth
250
- - [x] **v0.5** — 声誉系统、开发者文档、L0 Gate
251
- - [x] **v0.5.5** — 地基加固:WASM 沙箱强制执行、L0 Gate 集成、F(g) 规范对齐
252
- - [ ] **v0.6** — Web Registry:动态 Gene 页面、开发者主页、Gene 冷启动(≥50 个 Gene)
253
- - [ ] **v0.6.5** — 跨绑定验证:`RotiferBinding` trait、Web3 Mock Binding、IR 互操作验证
254
- - [ ] **v0.7** — 混合基因、IDE 插件(Cursor/VS Code)、开发者 dogfooding
255
- - [ ] **v0.8** — 安全加固、P2P 协议设计(RFC)
256
- - [ ] **v0.9** — P2P 网络(元数据发现)、经济体系设计
257
- - [ ] **v1.0** — 稳定版:L0-L3 完整、经济体系上线、安全审计
277
+ 详细发布历史请参见 [CHANGELOG.md](CHANGELOG.md)。接下来的里程碑:
278
+
279
+ - **v0.9** — P2P 网络(元数据发现)、经济体系设计
280
+ - **v1.0** — 稳定版:L0-L3 完整、经济体系上线、安全审计
258
281
 
259
282
  ---
260
283
 
261
284
  ## 社区
262
285
 
263
- - [Discord](https://discord.gg/6d4JrfMr) — 加入讨论
286
+ - [Discord](https://rotifer.dev/discord) — 加入讨论
264
287
  - [GitHub Discussions](https://github.com/rotifer-protocol/rotifer-playground/discussions) — 问题与提案
265
288
 
266
289
  ## 参与贡献
@@ -12,9 +12,15 @@ export declare function isLoggedIn(): boolean;
12
12
  export declare function requireAuth(): Promise<CloudCredentials>;
13
13
  export declare function generateCodeVerifier(): string;
14
14
  export declare function generateCodeChallenge(verifier: string): string;
15
+ export declare const OAUTH_CALLBACK_HOST = "127.0.0.1";
16
+ export declare function buildOAuthCallbackUrl(port: number, path?: string): string;
15
17
  /**
16
- * Start a local HTTP server to receive the OAuth callback.
17
- * Handles both PKCE flow (?code=...) and implicit flow (#access_token=...).
18
+ * Start a local OAuth callback server on a random port (127.0.0.1:0).
19
+ * Returns the bound port immediately so the caller can construct the auth URL,
20
+ * plus a promise that resolves when the callback arrives.
18
21
  */
19
- export declare function waitForOAuthCallback(port?: number): Promise<string>;
22
+ export declare function startOAuthCallbackServer(): Promise<{
23
+ port: number;
24
+ waitForCallback: Promise<string>;
25
+ }>;
20
26
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cloud/auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAqChE,wBAAgB,eAAe,IAAI,gBAAgB,GAAG,IAAI,CAazD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4C1D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAK7D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAS7D;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA+DzE"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cloud/auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAoChE,wBAAgB,eAAe,IAAI,gBAAgB,GAAG,IAAI,CAazD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4C1D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAM7D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAS7D;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,MAAM,CAEtF;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC,CAwED"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OAUTH_CALLBACK_HOST = void 0;
3
4
  exports.loadCredentials = loadCredentials;
4
5
  exports.refreshTokenIfNeeded = refreshTokenIfNeeded;
5
6
  exports.saveCredentials = saveCredentials;
@@ -8,17 +9,17 @@ exports.isLoggedIn = isLoggedIn;
8
9
  exports.requireAuth = requireAuth;
9
10
  exports.generateCodeVerifier = generateCodeVerifier;
10
11
  exports.generateCodeChallenge = generateCodeChallenge;
11
- exports.waitForOAuthCallback = waitForOAuthCallback;
12
+ exports.buildOAuthCallbackUrl = buildOAuthCallbackUrl;
13
+ exports.startOAuthCallbackServer = startOAuthCallbackServer;
12
14
  const node_fs_1 = require("node:fs");
13
15
  const node_path_1 = require("node:path");
14
16
  const node_http_1 = require("node:http");
15
17
  const node_crypto_1 = require("node:crypto");
16
18
  const types_js_1 = require("./types.js");
19
+ const private_fs_js_1 = require("../utils/private-fs.js");
17
20
  const ROTIFER_HOME = (0, node_path_1.join)(process.env.HOME || process.env.USERPROFILE || "/tmp", ".rotifer");
18
21
  function ensureRotiferHome() {
19
- if (!(0, node_fs_1.existsSync)(ROTIFER_HOME)) {
20
- (0, node_fs_1.mkdirSync)(ROTIFER_HOME, { recursive: true });
21
- }
22
+ (0, private_fs_js_1.ensurePrivateDir)(ROTIFER_HOME);
22
23
  }
23
24
  function credentialsPath() {
24
25
  return (0, node_path_1.join)(ROTIFER_HOME, types_js_1.CREDENTIALS_FILE);
@@ -105,6 +106,7 @@ function saveCredentials(creds) {
105
106
  (0, node_fs_1.writeFileSync)(credentialsPath(), JSON.stringify(creds, null, 2) + "\n", {
106
107
  mode: 0o600,
107
108
  });
109
+ (0, private_fs_js_1.tightenPrivateFile)(credentialsPath());
108
110
  }
109
111
  function clearCredentials() {
110
112
  const path = credentialsPath();
@@ -130,14 +132,26 @@ function generateCodeVerifier() {
130
132
  function generateCodeChallenge(verifier) {
131
133
  return (0, node_crypto_1.createHash)("sha256").update(verifier).digest("base64url");
132
134
  }
135
+ exports.OAUTH_CALLBACK_HOST = "127.0.0.1";
136
+ function buildOAuthCallbackUrl(port, path = "/callback") {
137
+ return `http://${exports.OAUTH_CALLBACK_HOST}:${port}${path}`;
138
+ }
133
139
  /**
134
- * Start a local HTTP server to receive the OAuth callback.
135
- * Handles both PKCE flow (?code=...) and implicit flow (#access_token=...).
140
+ * Start a local OAuth callback server on a random port (127.0.0.1:0).
141
+ * Returns the bound port immediately so the caller can construct the auth URL,
142
+ * plus a promise that resolves when the callback arrives.
136
143
  */
137
- function waitForOAuthCallback(port = 9876) {
144
+ async function startOAuthCallbackServer() {
138
145
  return new Promise((resolve, reject) => {
146
+ let callbackResolve;
147
+ let callbackReject;
148
+ const waitForCallback = new Promise((res, rej) => {
149
+ callbackResolve = res;
150
+ callbackReject = rej;
151
+ });
139
152
  const server = (0, node_http_1.createServer)((req, res) => {
140
- const url = new URL(req.url || "/", `http://localhost:${port}`);
153
+ const boundPort = server.address()?.port || 0;
154
+ const url = new URL(req.url || "/", buildOAuthCallbackUrl(boundPort));
141
155
  if (url.pathname === "/callback/token") {
142
156
  const token = url.searchParams.get("access_token");
143
157
  const refresh = url.searchParams.get("refresh_token");
@@ -147,7 +161,7 @@ function waitForOAuthCallback(port = 9876) {
147
161
  "<p>You can close this window and return to the terminal.</p>" +
148
162
  "</body></html>");
149
163
  server.close();
150
- resolve(`implicit:${token}:${refresh || ""}`);
164
+ callbackResolve(`implicit:${token}:${refresh || ""}`);
151
165
  return;
152
166
  }
153
167
  }
@@ -158,7 +172,7 @@ function waitForOAuthCallback(port = 9876) {
158
172
  "<p>You can close this window and return to the terminal.</p>" +
159
173
  "</body></html>");
160
174
  server.close();
161
- resolve(code);
175
+ callbackResolve(code);
162
176
  }
163
177
  else {
164
178
  res.writeHead(200, { "Content-Type": "text/html" });
@@ -178,15 +192,16 @@ if (window.location.hash) {
178
192
  </script><noscript>Enable JavaScript to complete login.</noscript></body></html>`);
179
193
  }
180
194
  });
181
- server.listen(port, () => {
182
- // Server ready
195
+ server.listen(0, exports.OAUTH_CALLBACK_HOST, () => {
196
+ const addr = server.address();
197
+ resolve({ port: addr.port, waitForCallback });
183
198
  });
184
199
  server.on("error", (err) => {
185
200
  reject(new Error(`Failed to start callback server: ${err.message}`));
186
201
  });
187
202
  setTimeout(() => {
188
203
  server.close();
189
- reject(new Error("Login timed out after 120 seconds"));
204
+ callbackReject(new Error("Login timed out after 120 seconds"));
190
205
  }, 120_000);
191
206
  });
192
207
  }