@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
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMajorUpgrade = isMajorUpgrade;
4
+ exports.checkForUpdate = checkForUpdate;
5
+ exports.checkCacheSync = checkCacheSync;
6
+ exports.printUpdateNotification = printUpdateNotification;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = require("node:path");
9
+ const node_os_1 = require("node:os");
10
+ const palette_js_1 = require("./palette.js");
11
+ const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000;
12
+ function getConfigDir() {
13
+ return process.env.ROTIFER_CONFIG_DIR || (0, node_path_1.join)((0, node_os_1.homedir)(), ".config", "rotifer");
14
+ }
15
+ function getCacheFile() {
16
+ return (0, node_path_1.join)(getConfigDir(), "update-check.json");
17
+ }
18
+ const REGISTRY_URL = "https://registry.npmjs.org";
19
+ const FETCH_TIMEOUT_MS = 5000;
20
+ function shouldSkip() {
21
+ if (process.env.CI)
22
+ return true;
23
+ if (process.env.NO_UPDATE_NOTIFIER)
24
+ return true;
25
+ if (process.env.ROTIFER_NO_UPDATE_CHECK)
26
+ return true;
27
+ if (isRunViaNpx())
28
+ return true;
29
+ return false;
30
+ }
31
+ function isRunViaNpx() {
32
+ const execPath = process.env.npm_execpath || "";
33
+ const npmCommand = process.env.npm_command || "";
34
+ return execPath.includes("npx") || npmCommand === "exec";
35
+ }
36
+ function readCache() {
37
+ try {
38
+ const f = getCacheFile();
39
+ if ((0, node_fs_1.existsSync)(f)) {
40
+ return JSON.parse((0, node_fs_1.readFileSync)(f, "utf-8"));
41
+ }
42
+ }
43
+ catch { /* corrupt cache, regenerate */ }
44
+ return {};
45
+ }
46
+ function writeCache(cache) {
47
+ try {
48
+ (0, node_fs_1.mkdirSync)(getConfigDir(), { recursive: true });
49
+ (0, node_fs_1.writeFileSync)(getCacheFile(), JSON.stringify(cache, null, 2));
50
+ }
51
+ catch { /* non-critical */ }
52
+ }
53
+ async function fetchLatestVersion(pkgName) {
54
+ try {
55
+ const controller = new AbortController();
56
+ const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
57
+ const res = await fetch(`${REGISTRY_URL}/${encodeURIComponent(pkgName)}/latest`, {
58
+ signal: controller.signal,
59
+ headers: { accept: "application/json" },
60
+ });
61
+ clearTimeout(timeout);
62
+ if (!res.ok)
63
+ return null;
64
+ const data = await res.json();
65
+ return data.version || null;
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ function compareSemver(a, b) {
72
+ const pa = a.split(".").map(Number);
73
+ const pb = b.split(".").map(Number);
74
+ for (let i = 0; i < 3; i++) {
75
+ if ((pa[i] || 0) > (pb[i] || 0))
76
+ return 1;
77
+ if ((pa[i] || 0) < (pb[i] || 0))
78
+ return -1;
79
+ }
80
+ return 0;
81
+ }
82
+ function isMajorUpgrade(current, latest) {
83
+ const curMajor = parseInt(current.split(".")[0], 10);
84
+ const latMajor = parseInt(latest.split(".")[0], 10);
85
+ return latMajor > curMajor;
86
+ }
87
+ /**
88
+ * Non-blocking version check against npm registry.
89
+ * Returns update info if a newer version exists, null otherwise.
90
+ * Caches results for 24 hours. Never throws — fails silently.
91
+ */
92
+ async function checkForUpdate(pkgName, currentVersion) {
93
+ if (shouldSkip())
94
+ return null;
95
+ try {
96
+ const cache = readCache();
97
+ const entry = cache[pkgName];
98
+ if (entry && Date.now() - entry.lastCheck < CHECK_INTERVAL_MS) {
99
+ if (compareSemver(entry.latest, currentVersion) > 0) {
100
+ return { current: currentVersion, latest: entry.latest, isMajor: isMajorUpgrade(currentVersion, entry.latest) };
101
+ }
102
+ return null;
103
+ }
104
+ const latest = await fetchLatestVersion(pkgName);
105
+ if (!latest)
106
+ return null;
107
+ cache[pkgName] = { lastCheck: Date.now(), latest };
108
+ writeCache(cache);
109
+ if (compareSemver(latest, currentVersion) > 0) {
110
+ return { current: currentVersion, latest, isMajor: isMajorUpgrade(currentVersion, latest) };
111
+ }
112
+ return null;
113
+ }
114
+ catch {
115
+ return null;
116
+ }
117
+ }
118
+ /**
119
+ * Synchronous cache-only check. Returns UpdateInfo if cache is fresh and
120
+ * a newer version exists, null otherwise. Never hits the network.
121
+ * Use this to register process.on("exit") handlers that survive process.exit().
122
+ */
123
+ function checkCacheSync(pkgName, currentVersion) {
124
+ if (shouldSkip())
125
+ return null;
126
+ try {
127
+ const cache = readCache();
128
+ const entry = cache[pkgName];
129
+ if (entry && compareSemver(entry.latest, currentVersion) > 0) {
130
+ return { current: currentVersion, latest: entry.latest, isMajor: isMajorUpgrade(currentVersion, entry.latest) };
131
+ }
132
+ }
133
+ catch { /* non-critical */ }
134
+ return null;
135
+ }
136
+ function printUpdateNotification(info, pkgName) {
137
+ const border = palette_js_1.c.warn(palette_js_1.icon.dash.repeat(50));
138
+ console.error("");
139
+ console.error(border);
140
+ console.error(palette_js_1.c.warn(" Update available: ") +
141
+ palette_js_1.c.error(info.current) +
142
+ palette_js_1.c.warn(` ${palette_js_1.icon.arrow} `) +
143
+ palette_js_1.c.success(info.latest));
144
+ if (info.isMajor) {
145
+ console.error(palette_js_1.c.error(` ${palette_js_1.icon.warn} Major version upgrade — review breaking changes first`));
146
+ }
147
+ console.error(palette_js_1.c.warn(" Run ") +
148
+ palette_js_1.c.accent(`npm i -g ${pkgName}@latest`) +
149
+ palette_js_1.c.warn(" to update"));
150
+ console.error(palette_js_1.c.warn(" Or: ") +
151
+ palette_js_1.c.accent("rotifer self-update"));
152
+ console.error(border);
153
+ console.error("");
154
+ }
155
+ //# sourceMappingURL=update-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/utils/update-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface UserConfig {
2
+ "update-check"?: boolean;
3
+ "last-version"?: string;
4
+ }
5
+ export declare function isValidKey(key: string): key is keyof UserConfig;
6
+ export declare function loadUserConfig(): UserConfig;
7
+ export declare function saveUserConfig(config: UserConfig): void;
8
+ export declare function getUserConfigValue(key: keyof UserConfig): string;
9
+ export declare function setUserConfigValue(key: keyof UserConfig, value: string): void;
10
+ //# sourceMappingURL=user-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-config.d.ts","sourceRoot":"","sources":["../../src/utils/user-config.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AASD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,MAAM,UAAU,CAE/D;AAED,wBAAgB,cAAc,IAAI,UAAU,CAQ3C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGvD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAAU,GAAG,MAAM,CAIhE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ7E"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidKey = isValidKey;
4
+ exports.loadUserConfig = loadUserConfig;
5
+ exports.saveUserConfig = saveUserConfig;
6
+ exports.getUserConfigValue = getUserConfigValue;
7
+ exports.setUserConfigValue = setUserConfigValue;
8
+ const node_fs_1 = require("node:fs");
9
+ const node_path_1 = require("node:path");
10
+ const node_os_1 = require("node:os");
11
+ function getConfigDir() {
12
+ return process.env.ROTIFER_CONFIG_DIR || (0, node_path_1.join)((0, node_os_1.homedir)(), ".config", "rotifer");
13
+ }
14
+ function getUserConfigFile() {
15
+ return (0, node_path_1.join)(getConfigDir(), "config.json");
16
+ }
17
+ const DEFAULTS = {
18
+ "update-check": true,
19
+ "last-version": "",
20
+ };
21
+ const VALID_KEYS = new Set(["update-check", "last-version"]);
22
+ function isValidKey(key) {
23
+ return VALID_KEYS.has(key);
24
+ }
25
+ function loadUserConfig() {
26
+ try {
27
+ const f = getUserConfigFile();
28
+ if ((0, node_fs_1.existsSync)(f)) {
29
+ return JSON.parse((0, node_fs_1.readFileSync)(f, "utf-8"));
30
+ }
31
+ }
32
+ catch { /* corrupt config, use defaults */ }
33
+ return {};
34
+ }
35
+ function saveUserConfig(config) {
36
+ (0, node_fs_1.mkdirSync)(getConfigDir(), { recursive: true });
37
+ (0, node_fs_1.writeFileSync)(getUserConfigFile(), JSON.stringify(config, null, 2) + "\n");
38
+ }
39
+ function getUserConfigValue(key) {
40
+ const config = loadUserConfig();
41
+ const val = config[key] ?? DEFAULTS[key];
42
+ return String(val);
43
+ }
44
+ function setUserConfigValue(key, value) {
45
+ const config = loadUserConfig();
46
+ if (key === "update-check") {
47
+ config[key] = value === "true" || value === "1";
48
+ }
49
+ else {
50
+ config[key] = value;
51
+ }
52
+ saveUserConfig(config);
53
+ }
54
+ //# sourceMappingURL=user-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-config.js","sourceRoot":"","sources":["../../src/utils/user-config.ts"],"names":[],"mappings":";;AAwBA,gCAEC;AAED,wCAQC;AAED,wCAGC;AAED,gDAIC;AAED,gDAQC;AAzDD,qCAA6E;AAC7E,yCAAiC;AACjC,qCAAkC;AAElC,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,IAAA,gBAAI,EAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAOD,MAAM,QAAQ,GAAyB;IACrC,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,EAAE;CACnB,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAmB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;AAE/E,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,UAAU,CAAC,GAAG,CAAC,GAAuB,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,iBAAiB,EAAE,CAAC;QAC9B,IAAI,IAAA,oBAAU,EAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAC9C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAgB,cAAc,CAAC,MAAkB;IAC/C,IAAA,mBAAS,EAAC,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,IAAA,uBAAa,EAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAqB;IACtD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAqB,EAAE,KAAa;IACrE,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;IAClD,CAAC;SAAM,CAAC;QACL,MAAkC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnD,CAAC;IACD,cAAc,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Validate a gene name for safe filesystem and API usage.
3
+ * Rejects path traversal sequences, path separators, and non-conforming names.
4
+ * @throws Error if the name is invalid
5
+ */
6
+ export declare function validateGeneName(name: string): void;
7
+ //# sourceMappingURL=validate-gene-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-gene-name.d.ts","sourceRoot":"","sources":["../../src/utils/validate-gene-name.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAkBnD"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateGeneName = validateGeneName;
4
+ const GENE_NAME_REGEX = /^[a-z0-9]([a-z0-9._-]*[a-z0-9])?$/;
5
+ const MAX_GENE_NAME_LENGTH = 100;
6
+ /**
7
+ * Validate a gene name for safe filesystem and API usage.
8
+ * Rejects path traversal sequences, path separators, and non-conforming names.
9
+ * @throws Error if the name is invalid
10
+ */
11
+ function validateGeneName(name) {
12
+ if (!name || typeof name !== "string") {
13
+ throw new Error("Gene name must be a non-empty string");
14
+ }
15
+ if (name.length > MAX_GENE_NAME_LENGTH) {
16
+ throw new Error(`Gene name exceeds ${MAX_GENE_NAME_LENGTH} characters: "${name}"`);
17
+ }
18
+ if (name.includes("..")) {
19
+ throw new Error(`Gene name must not contain "..": "${name}"`);
20
+ }
21
+ if (name.includes("/") || name.includes("\\") || name.includes("\0")) {
22
+ throw new Error(`Gene name must not contain path separators or null bytes: "${name}"`);
23
+ }
24
+ if (!GENE_NAME_REGEX.test(name)) {
25
+ throw new Error(`Gene name "${name}" does not match required pattern: lowercase alphanumeric, dots, hyphens, underscores. Must start and end with alphanumeric.`);
26
+ }
27
+ }
28
+ //# sourceMappingURL=validate-gene-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-gene-name.js","sourceRoot":"","sources":["../../src/utils/validate-gene-name.ts"],"names":[],"mappings":";;AAQA,4CAkBC;AA1BD,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAC5D,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,qBAAqB,oBAAoB,iBAAiB,IAAI,GAAG,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,8DAA8D,IAAI,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,8HAA8H,CACjJ,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -18,13 +18,14 @@
18
18
  }
19
19
  },
20
20
  "dependencies": [],
21
- "version": "0.1.0",
21
+ "version": "0.2.0",
22
22
  "author": "rotifer-genesis",
23
23
  "fidelity": "Native",
24
24
  "transparency": "Open",
25
- "semantic_requirements": {
25
+ "semanticRequirements": {
26
26
  "timeModel": "Sync",
27
27
  "concurrencyModel": "Stateless",
28
28
  "failureSemantics": "Fail"
29
- }
29
+ },
30
+ "tags": ["formatter", "prettier", "typescript", "rust", "genesis"]
30
31
  }
@@ -18,13 +18,14 @@
18
18
  }
19
19
  },
20
20
  "dependencies": [],
21
- "version": "0.1.0",
21
+ "version": "0.2.0",
22
22
  "author": "rotifer-genesis",
23
23
  "fidelity": "Native",
24
24
  "transparency": "Open",
25
- "semantic_requirements": {
25
+ "semanticRequirements": {
26
26
  "timeModel": "Sync",
27
27
  "concurrencyModel": "Stateless",
28
28
  "failureSemantics": "Fail"
29
- }
29
+ },
30
+ "tags": ["file-io", "encoding", "base64", "local-files", "genesis"]
30
31
  }
@@ -26,13 +26,14 @@
26
26
  }
27
27
  },
28
28
  "dependencies": [],
29
- "version": "0.1.0",
29
+ "version": "0.2.0",
30
30
  "author": "rotifer-genesis",
31
31
  "fidelity": "Native",
32
32
  "transparency": "Open",
33
- "semantic_requirements": {
33
+ "semanticRequirements": {
34
34
  "timeModel": "Sync",
35
35
  "concurrencyModel": "Stateless",
36
36
  "failureSemantics": "Fail"
37
- }
37
+ },
38
+ "tags": ["l0", "constraints", "wasm", "compliance", "sandbox"]
38
39
  }
@@ -28,14 +28,15 @@
28
28
  }
29
29
  },
30
30
  "dependencies": [],
31
- "version": "0.1.0",
31
+ "version": "0.2.0",
32
32
  "author": "rotifer-genesis",
33
33
  "fidelity": "Native",
34
34
  "transparency": "Open",
35
- "streaming_capability": null,
36
- "semantic_requirements": {
35
+ "streamingCapability": null,
36
+ "semanticRequirements": {
37
37
  "timeModel": "Async",
38
38
  "concurrencyModel": "Stateless",
39
39
  "failureSemantics": "Retry"
40
- }
40
+ },
41
+ "tags": ["web-search", "results", "snippets", "async", "retrieval"]
41
42
  }
@@ -16,13 +16,14 @@
16
16
  }
17
17
  },
18
18
  "dependencies": [],
19
- "version": "0.1.0",
19
+ "version": "0.2.0",
20
20
  "author": "rotifer-genesis",
21
21
  "fidelity": "Native",
22
22
  "transparency": "Open",
23
- "semantic_requirements": {
23
+ "semanticRequirements": {
24
24
  "timeModel": "Async",
25
25
  "concurrencyModel": "Stateless",
26
26
  "failureSemantics": "Fallback"
27
- }
27
+ },
28
+ "tags": ["web-search", "single-answer", "attribution", "lightweight", "async"]
28
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rotifer/playground",
3
- "version": "0.8.0",
3
+ "version": "0.8.5",
4
4
  "description": "Rotifer Protocol Playground — local development environment for gene development, Arena competition, and protocol simulation",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Rotifer Protocol Contributors",
@@ -33,32 +33,52 @@
33
33
  },
34
34
  "main": "./dist/index.js",
35
35
  "types": "./dist/index.d.ts",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts",
39
+ "default": "./dist/index.js"
40
+ },
41
+ "./package.json": "./package.json"
42
+ },
36
43
  "scripts": {
37
44
  "build": "tsc",
38
45
  "build:napi": "cd crates/rotifer-napi && napi build --release",
39
46
  "dev": "tsc --watch",
40
47
  "start": "node dist/index.js",
48
+ "sync:plugins": "node scripts/sync-plugin-outputs.mjs",
49
+ "check:plugins": "node scripts/check-plugin-outputs.mjs",
50
+ "verify:plugins": "node scripts/verify-plugin-packaging.mjs",
51
+ "verify:versions": "node scripts/verify-version-alignment.mjs",
52
+ "bump:plugin-family": "node scripts/bump-plugin-family.mjs",
41
53
  "test": "vitest run",
42
54
  "test:watch": "vitest",
43
55
  "test:coverage": "vitest run --coverage",
44
- "lint": "tsc --noEmit",
56
+ "lint": "tsc --noEmit && eslint src/",
57
+ "lint:names": "eslint src/ --rule '@typescript-eslint/naming-convention: error'",
45
58
  "clean": "rm -rf dist",
46
- "prepublishOnly": "npm run lint && npm run test && npm run build",
59
+ "smoke-test": "npx tsx scripts/post-deploy-smoke-test.ts",
60
+ "postinstall": "node scripts/postinstall.js",
61
+ "prepublishOnly": "npm run verify:versions && npm run lint && npm run test && npm run build",
47
62
  "prepack": "npm run build"
48
63
  },
49
64
  "dependencies": {
65
+ "@clack/prompts": "^1.2.0",
50
66
  "ajv": "^8.17.0",
51
67
  "ajv-formats": "^3.0.0",
52
68
  "chalk": "^4.1.2",
53
- "cli-table3": "^0.6.5",
54
- "commander": "^13.0.0",
55
- "pg": "^8.20.0"
69
+ "commander": "^14.0.0"
56
70
  },
57
71
  "devDependencies": {
58
- "@napi-rs/cli": "^3.5.1",
72
+ "@napi-rs/cli": "^3.6.0",
59
73
  "@types/node": "^22.0.0",
74
+ "@vitest/coverage-v8": "^4.1.2",
75
+ "eslint": "^10.1.0",
60
76
  "typescript": "^5.7.0",
61
- "vitest": "^3.0.0"
77
+ "typescript-eslint": "^8.58.0",
78
+ "vitest": "^4.0.0"
79
+ },
80
+ "optionalDependencies": {
81
+ "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.13"
62
82
  },
63
83
  "engines": {
64
84
  "node": ">=20.0.0"
@@ -67,6 +87,7 @@
67
87
  "dist/",
68
88
  "templates/",
69
89
  "genes/",
90
+ "scripts/postinstall.js",
70
91
  "LICENSE",
71
92
  "README.md",
72
93
  "CHANGELOG.md"
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ if (process.env.CI || process.env.CONTINUOUS_INTEGRATION) process.exit(0);
5
+ if (["silent", "warn"].includes(process.env.npm_config_loglevel)) process.exit(0);
6
+
7
+ let version = "0.0.0";
8
+ try {
9
+ version = require("../package.json").version;
10
+ } catch {
11
+ // fallback
12
+ }
13
+
14
+ const a = "\x1b[38;2;0;201;167m"; // accent #00C9A7
15
+ const d = "\x1b[2m"; // dim
16
+ const b = "\x1b[1m"; // bold
17
+ const r = "\x1b[0m"; // reset
18
+
19
+ const logo = [
20
+ " ____ _ _ __",
21
+ " | _ \\ ___ | |_(_)/ _| ___ _ __",
22
+ " | |_) / _ \\| __| | |_ / _ \\ '__|",
23
+ " | _ < (_) | |_| | _| __/ |",
24
+ " |_| \\_\\___/ \\__|_|_| \\___|_| v" + version,
25
+ ];
26
+
27
+ console.log("");
28
+ for (const line of logo) console.log(" " + a + line + r);
29
+ console.log("");
30
+ console.log(" " + a + b + "Code as Gene" + r + " " + d + "— Universal evolution framework for AI agents" + r);
31
+ console.log("");
32
+ console.log(" " + d + "Get started:" + r);
33
+ console.log(" " + a + "rotifer init my-project " + r + " " + d + "Create a new project" + r);
34
+ console.log(" " + a + "rotifer search " + r + " " + d + "Browse the gene ecosystem" + r);
35
+ console.log(" " + a + "rotifer --help " + r + " " + d + "See all commands" + r);
36
+ console.log("");
37
+ console.log(" " + d + "Docs: https://rotifer.dev/docs" + r);
38
+ console.log("");
@@ -1,25 +0,0 @@
1
- export interface RotiferError {
2
- code: string;
3
- message: string;
4
- file?: string;
5
- line?: number;
6
- column?: number;
7
- suggestion?: string;
8
- docsUrl?: string;
9
- }
10
- export declare function formatError(err: RotiferError): string;
11
- export declare const ERROR_CODES: {
12
- readonly E0001: "Gene directory not found";
13
- readonly E0002: "Phenotype validation failed";
14
- readonly E0003: "Schema compilation error";
15
- readonly E0010: "Phenotype file not found";
16
- readonly E0011: "Test execution failed";
17
- readonly E0020: "Compilation target not found";
18
- readonly E0021: "WASM compilation failed";
19
- readonly E0030: "Gene not wrapped";
20
- readonly E0031: "Arena submission failed";
21
- readonly E0040: "Agent creation failed";
22
- readonly E0100: "Config file not found";
23
- readonly E0101: "Config file invalid";
24
- };
25
- //# sourceMappingURL=formatter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/errors/formatter.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAwBrD;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAad,CAAC"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ERROR_CODES = void 0;
7
- exports.formatError = formatError;
8
- const chalk_1 = __importDefault(require("chalk"));
9
- function formatError(err) {
10
- const lines = [];
11
- lines.push(chalk_1.default.red.bold(`error[${err.code}]`) + chalk_1.default.bold(`: ${err.message}`));
12
- if (err.file) {
13
- let location = err.file;
14
- if (err.line)
15
- location += `:${err.line}`;
16
- if (err.column)
17
- location += `:${err.column}`;
18
- lines.push(chalk_1.default.blue(" --> ") + location);
19
- }
20
- if (err.suggestion) {
21
- lines.push("");
22
- lines.push(chalk_1.default.green("help") + `: ${err.suggestion}`);
23
- }
24
- if (err.docsUrl) {
25
- lines.push(chalk_1.default.dim("docs") + `: ${err.docsUrl}`);
26
- }
27
- return lines.join("\n");
28
- }
29
- exports.ERROR_CODES = {
30
- E0001: "Gene directory not found",
31
- E0002: "Phenotype validation failed",
32
- E0003: "Schema compilation error",
33
- E0010: "Phenotype file not found",
34
- E0011: "Test execution failed",
35
- E0020: "Compilation target not found",
36
- E0021: "WASM compilation failed",
37
- E0030: "Gene not wrapped",
38
- E0031: "Arena submission failed",
39
- E0040: "Agent creation failed",
40
- E0100: "Config file not found",
41
- E0101: "Config file invalid",
42
- };
43
- //# sourceMappingURL=formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/errors/formatter.ts"],"names":[],"mappings":";;;;;;AAYA,kCAwBC;AApCD,kDAA0B;AAY1B,SAAgB,WAAW,CAAC,GAAiB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CACR,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CACtE,CAAC;IAEF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI;YAAE,QAAQ,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,MAAM;YAAE,QAAQ,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,0BAA0B;IACjC,KAAK,EAAE,6BAA6B;IACpC,KAAK,EAAE,0BAA0B;IACjC,KAAK,EAAE,0BAA0B;IACjC,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,8BAA8B;IACrC,KAAK,EAAE,yBAAyB;IAChC,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,yBAAyB;IAChC,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,qBAAqB;CACpB,CAAC"}
@@ -1,6 +0,0 @@
1
- {
2
- "cloud_id": "6258ceaf-8610-4c2f-bbeb-e62ba3b6664d",
3
- "owner": "Rotifer Protocol",
4
- "version": "0.1.0",
5
- "published_at": "2026-03-17T14:11:44.403Z"
6
- }
@@ -1,8 +0,0 @@
1
- {
2
- "geneId": "f3f7ed9e0099a055c841c1573024a89b853e17772201a7183ae49760bb2db0a0",
3
- "name": "academic-writer",
4
- "domain": "content.academic",
5
- "fidelity": "Wrapped",
6
- "wrappedAt": "2026-02-24T13:23:10.543Z",
7
- "fromSkill": "../.cursor/skills/academic-writer/SKILL.md"
8
- }