@rotifer/playground 0.8.1 → 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.
- package/CHANGELOG.md +25 -11
- package/README.md +64 -48
- package/README.zh.md +60 -37
- package/dist/cloud/auth.d.ts +9 -3
- package/dist/cloud/auth.d.ts.map +1 -1
- package/dist/cloud/auth.js +28 -13
- package/dist/cloud/auth.js.map +1 -1
- package/dist/cloud/client.d.ts +4 -3
- package/dist/cloud/client.d.ts.map +1 -1
- package/dist/cloud/client.js +139 -68
- package/dist/cloud/client.js.map +1 -1
- package/dist/cloud/types.d.ts +3 -0
- package/dist/cloud/types.d.ts.map +1 -1
- package/dist/cloud/types.js.map +1 -1
- package/dist/commands/agent-create.d.ts +20 -0
- package/dist/commands/agent-create.d.ts.map +1 -1
- package/dist/commands/agent-create.js +91 -80
- package/dist/commands/agent-create.js.map +1 -1
- package/dist/commands/agent-list.d.ts.map +1 -1
- package/dist/commands/agent-list.js +27 -24
- package/dist/commands/agent-list.js.map +1 -1
- package/dist/commands/agent-run.d.ts +24 -0
- package/dist/commands/agent-run.d.ts.map +1 -1
- package/dist/commands/agent-run.js +154 -36
- package/dist/commands/agent-run.js.map +1 -1
- package/dist/commands/api-key.d.ts +3 -0
- package/dist/commands/api-key.d.ts.map +1 -0
- package/dist/commands/api-key.js +235 -0
- package/dist/commands/api-key.js.map +1 -0
- package/dist/commands/arena-list.d.ts.map +1 -1
- package/dist/commands/arena-list.js +113 -97
- package/dist/commands/arena-list.js.map +1 -1
- package/dist/commands/arena-submit.d.ts.map +1 -1
- package/dist/commands/arena-submit.js +113 -30
- package/dist/commands/arena-submit.js.map +1 -1
- package/dist/commands/arena-watch.d.ts.map +1 -1
- package/dist/commands/arena-watch.js +59 -87
- package/dist/commands/arena-watch.js.map +1 -1
- package/dist/commands/compare.d.ts.map +1 -1
- package/dist/commands/compare.js +40 -50
- package/dist/commands/compare.js.map +1 -1
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +60 -37
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/hello.d.ts +3 -0
- package/dist/commands/hello.d.ts.map +1 -0
- package/dist/commands/hello.js +575 -0
- package/dist/commands/hello.js.map +1 -0
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +130 -40
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +39 -60
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +35 -9
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +111 -58
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +23 -10
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/network.d.ts.map +1 -1
- package/dist/commands/network.js +48 -67
- package/dist/commands/network.js.map +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +127 -53
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/reputation.js +84 -85
- package/dist/commands/reputation.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +26 -9
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +8 -9
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +80 -54
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/self-update.d.ts +7 -0
- package/dist/commands/self-update.d.ts.map +1 -0
- package/dist/commands/self-update.js +187 -0
- package/dist/commands/self-update.js.map +1 -0
- package/dist/commands/stats.d.ts.map +1 -1
- package/dist/commands/stats.js +20 -26
- package/dist/commands/stats.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +95 -75
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/user-config.d.ts +3 -0
- package/dist/commands/user-config.d.ts.map +1 -0
- package/dist/commands/user-config.js +82 -0
- package/dist/commands/user-config.js.map +1 -0
- package/dist/commands/versions.d.ts.map +1 -1
- package/dist/commands/versions.js +46 -33
- package/dist/commands/versions.js.map +1 -1
- package/dist/commands/vg.d.ts.map +1 -1
- package/dist/commands/vg.js +65 -63
- package/dist/commands/vg.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +33 -23
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/wrap.d.ts.map +1 -1
- package/dist/commands/wrap.js +57 -40
- package/dist/commands/wrap.js.map +1 -1
- package/dist/index.js +61 -1
- package/dist/index.js.map +1 -1
- package/dist/publish/pre-publish-check.d.ts +15 -0
- package/dist/publish/pre-publish-check.d.ts.map +1 -0
- package/dist/publish/pre-publish-check.js +228 -0
- package/dist/publish/pre-publish-check.js.map +1 -0
- package/dist/runtime/domain-failover.d.ts +1 -1
- package/dist/runtime/domain-failover.js +1 -1
- package/dist/runtime/network-gateway.d.ts +1 -1
- package/dist/runtime/network-gateway.d.ts.map +1 -1
- package/dist/runtime/network-gateway.js +10 -10
- package/dist/runtime/network-gateway.js.map +1 -1
- package/dist/scanner/scanner.js +3 -3
- package/dist/scanner/scanner.js.map +1 -1
- package/dist/utils/binding.d.ts.map +1 -1
- package/dist/utils/binding.js +5 -4
- package/dist/utils/binding.js.map +1 -1
- package/dist/utils/content-hash.d.ts +3 -0
- package/dist/utils/content-hash.d.ts.map +1 -0
- package/dist/utils/content-hash.js +25 -0
- package/dist/utils/content-hash.js.map +1 -0
- package/dist/utils/display.d.ts +44 -1
- package/dist/utils/display.d.ts.map +1 -1
- package/dist/utils/display.js +443 -14
- package/dist/utils/display.js.map +1 -1
- package/dist/utils/domain-suggest.d.ts.map +1 -1
- package/dist/utils/domain-suggest.js +3 -3
- package/dist/utils/domain-suggest.js.map +1 -1
- package/dist/utils/javy-compiler.js +9 -3
- package/dist/utils/javy-compiler.js.map +1 -1
- package/dist/utils/open-browser.d.ts +7 -3
- package/dist/utils/open-browser.d.ts.map +1 -1
- package/dist/utils/open-browser.js +15 -4
- package/dist/utils/open-browser.js.map +1 -1
- package/dist/utils/palette.d.ts +49 -0
- package/dist/utils/palette.d.ts.map +1 -0
- package/dist/utils/palette.js +80 -0
- package/dist/utils/palette.js.map +1 -0
- package/dist/utils/private-fs.d.ts +3 -0
- package/dist/utils/private-fs.d.ts.map +1 -0
- package/dist/utils/private-fs.js +25 -0
- package/dist/utils/private-fs.js.map +1 -0
- package/dist/utils/project-root.d.ts +2 -0
- package/dist/utils/project-root.d.ts.map +1 -0
- package/dist/utils/project-root.js +49 -0
- package/dist/utils/project-root.js.map +1 -0
- package/dist/utils/run-logger.d.ts +24 -0
- package/dist/utils/run-logger.d.ts.map +1 -0
- package/dist/utils/run-logger.js +70 -0
- package/dist/utils/run-logger.js.map +1 -0
- package/dist/utils/update-check.d.ts +20 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +155 -0
- package/dist/utils/update-check.js.map +1 -0
- package/dist/utils/user-config.d.ts +10 -0
- package/dist/utils/user-config.d.ts.map +1 -0
- package/dist/utils/user-config.js +54 -0
- package/dist/utils/user-config.js.map +1 -0
- package/dist/utils/validate-gene-name.d.ts +7 -0
- package/dist/utils/validate-gene-name.d.ts.map +1 -0
- package/dist/utils/validate-gene-name.js +28 -0
- package/dist/utils/validate-gene-name.js.map +1 -0
- package/genes/genesis-code-format/phenotype.json +4 -3
- package/genes/genesis-file-read/phenotype.json +4 -3
- package/genes/genesis-l0-constraint/phenotype.json +4 -3
- package/genes/genesis-web-search/phenotype.json +5 -4
- package/genes/genesis-web-search-lite/phenotype.json +4 -3
- package/package.json +29 -8
- package/scripts/postinstall.js +38 -0
- package/dist/errors/formatter.d.ts +0 -25
- package/dist/errors/formatter.d.ts.map +0 -1
- package/dist/errors/formatter.js +0 -43
- package/dist/errors/formatter.js.map +0 -1
- package/genes/academic-writer/.cloud-manifest.json +0 -6
- package/genes/academic-writer/.gene-manifest.json +0 -8
- package/genes/academic-writer/SKILL.md +0 -274
- package/genes/academic-writer/phenotype.json +0 -28
- package/genes/ai-components/.cloud-manifest.json +0 -6
- package/genes/ai-components/.gene-manifest.json +0 -8
- package/genes/ai-components/SKILL.md +0 -381
- package/genes/ai-components/phenotype.json +0 -28
- package/genes/algorithmic-art/.cloud-manifest.json +0 -6
- package/genes/algorithmic-art/.gene-manifest.json +0 -8
- package/genes/algorithmic-art/SKILL.md +0 -405
- package/genes/algorithmic-art/phenotype.json +0 -28
- package/genes/answer-synthesizer/.cloud-manifest.json +0 -6
- package/genes/answer-synthesizer/index.ts +0 -194
- package/genes/answer-synthesizer/phenotype.json +0 -61
- package/genes/api-designer/.cloud-manifest.json +0 -6
- package/genes/api-designer/.gene-manifest.json +0 -8
- package/genes/api-designer/SKILL.md +0 -456
- package/genes/api-designer/phenotype.json +0 -28
- package/genes/auto-coder/.cloud-manifest.json +0 -6
- package/genes/auto-coder/.gene-manifest.json +0 -8
- package/genes/auto-coder/SKILL.md +0 -400
- package/genes/auto-coder/phenotype.json +0 -28
- package/genes/auto-writer/.cloud-manifest.json +0 -6
- package/genes/auto-writer/.gene-manifest.json +0 -8
- package/genes/auto-writer/SKILL.md +0 -361
- package/genes/auto-writer/phenotype.json +0 -28
- package/genes/brand-personality/.cloud-manifest.json +0 -6
- package/genes/brand-personality/.gene-manifest.json +0 -8
- package/genes/brand-personality/SKILL.md +0 -549
- package/genes/brand-personality/phenotype.json +0 -28
- package/genes/business-writer/.cloud-manifest.json +0 -6
- package/genes/business-writer/.gene-manifest.json +0 -8
- package/genes/business-writer/SKILL.md +0 -448
- package/genes/business-writer/phenotype.json +0 -28
- package/genes/citation-manager/.cloud-manifest.json +0 -6
- package/genes/citation-manager/.gene-manifest.json +0 -8
- package/genes/citation-manager/SKILL.md +0 -279
- package/genes/citation-manager/index.ts +0 -162
- package/genes/citation-manager/package.json +0 -1
- package/genes/citation-manager/phenotype.json +0 -50
- package/genes/code-complexity/.cloud-manifest.json +0 -6
- package/genes/code-complexity/README.md +0 -35
- package/genes/code-complexity/index.ts +0 -101
- package/genes/code-complexity/phenotype.json +0 -34
- package/genes/copywriter/.cloud-manifest.json +0 -6
- package/genes/copywriter/.gene-manifest.json +0 -8
- package/genes/copywriter/SKILL.md +0 -329
- package/genes/copywriter/phenotype.json +0 -28
- package/genes/creative-writer/.cloud-manifest.json +0 -6
- package/genes/creative-writer/.gene-manifest.json +0 -8
- package/genes/creative-writer/SKILL.md +0 -356
- package/genes/creative-writer/phenotype.json +0 -28
- package/genes/data-modeler/.cloud-manifest.json +0 -6
- package/genes/data-modeler/.gene-manifest.json +0 -8
- package/genes/data-modeler/SKILL.md +0 -486
- package/genes/data-modeler/phenotype.json +0 -28
- package/genes/debugger/.cloud-manifest.json +0 -6
- package/genes/debugger/.gene-manifest.json +0 -8
- package/genes/debugger/SKILL.md +0 -416
- package/genes/debugger/phenotype.json +0 -28
- package/genes/design-tokens/.cloud-manifest.json +0 -6
- package/genes/design-tokens/.gene-manifest.json +0 -8
- package/genes/design-tokens/SKILL.md +0 -222
- package/genes/design-tokens/index.ts +0 -128
- package/genes/design-tokens/package.json +0 -1
- package/genes/design-tokens/phenotype.json +0 -1
- package/genes/devops-automator/.cloud-manifest.json +0 -6
- package/genes/devops-automator/.gene-manifest.json +0 -8
- package/genes/devops-automator/SKILL.md +0 -490
- package/genes/devops-automator/phenotype.json +0 -28
- package/genes/doc-coauthoring/.cloud-manifest.json +0 -6
- package/genes/doc-coauthoring/.gene-manifest.json +0 -8
- package/genes/doc-coauthoring/SKILL.md +0 -375
- package/genes/doc-coauthoring/phenotype.json +0 -28
- package/genes/doc-retrieval/.cloud-manifest.json +0 -6
- package/genes/doc-retrieval/index.ts +0 -134
- package/genes/doc-retrieval/phenotype.json +0 -54
- package/genes/docs-writer/.cloud-manifest.json +0 -6
- package/genes/docs-writer/.gene-manifest.json +0 -8
- package/genes/docs-writer/SKILL.md +0 -492
- package/genes/docs-writer/phenotype.json +0 -28
- package/genes/evolve-life/.cloud-manifest.json +0 -6
- package/genes/evolve-life/.compile-result.json +0 -12
- package/genes/evolve-life/README.md +0 -52
- package/genes/evolve-life/gene.ir.wasm +0 -0
- package/genes/evolve-life/gene.wasm +0 -0
- package/genes/evolve-life/index.ts +0 -255
- package/genes/evolve-life/phenotype.json +0 -129
- package/genes/evolve-life-bitwise/.cloud-manifest.json +0 -6
- package/genes/evolve-life-bitwise/.compile-result.json +0 -12
- package/genes/evolve-life-bitwise/gene.ir.wasm +0 -0
- package/genes/evolve-life-bitwise/gene.wasm +0 -0
- package/genes/evolve-life-bitwise/index.ts +0 -273
- package/genes/evolve-life-bitwise/phenotype.json +0 -129
- package/genes/evolve-life-sparse/.cloud-manifest.json +0 -6
- package/genes/evolve-life-sparse/.compile-result.json +0 -12
- package/genes/evolve-life-sparse/gene.ir.wasm +0 -0
- package/genes/evolve-life-sparse/gene.wasm +0 -0
- package/genes/evolve-life-sparse/index.ts +0 -236
- package/genes/evolve-life-sparse/phenotype.json +0 -129
- package/genes/fact-checker/.cloud-manifest.json +0 -6
- package/genes/fact-checker/.gene-manifest.json +0 -8
- package/genes/fact-checker/SKILL.md +0 -373
- package/genes/fact-checker/phenotype.json +0 -28
- package/genes/git-workflow/.cloud-manifest.json +0 -6
- package/genes/git-workflow/.gene-manifest.json +0 -8
- package/genes/git-workflow/SKILL.md +0 -407
- package/genes/git-workflow/phenotype.json +0 -28
- package/genes/grammar-checker/.cloud-manifest.json +0 -6
- package/genes/grammar-checker/.gene-manifest.json +0 -8
- package/genes/grammar-checker/SKILL.md +0 -194
- package/genes/grammar-checker/index.ts +0 -168
- package/genes/grammar-checker/package.json +0 -1
- package/genes/grammar-checker/phenotype.json +0 -52
- package/genes/guard-balanced/.gene-manifest.json +0 -8
- package/genes/guard-balanced/phenotype.json +0 -105
- package/genes/guard-balanced/system-prompt.md +0 -23
- package/genes/guard-strict/.gene-manifest.json +0 -8
- package/genes/guard-strict/phenotype.json +0 -107
- package/genes/guard-strict/system-prompt.md +0 -18
- package/genes/json-validator/.cloud-manifest.json +0 -6
- package/genes/json-validator/README.md +0 -42
- package/genes/json-validator/index.ts +0 -112
- package/genes/json-validator/phenotype.json +0 -42
- package/genes/license-advisor/.cloud-manifest.json +0 -6
- package/genes/license-advisor/.gene-manifest.json +0 -8
- package/genes/license-advisor/SKILL.md +0 -117
- package/genes/license-advisor/phenotype.json +0 -28
- package/genes/logic-architect/.cloud-manifest.json +0 -6
- package/genes/logic-architect/.gene-manifest.json +0 -8
- package/genes/logic-architect/SKILL.md +0 -451
- package/genes/logic-architect/phenotype.json +0 -28
- package/genes/markdown-formatter/.cloud-manifest.json +0 -6
- package/genes/markdown-formatter/README.md +0 -34
- package/genes/markdown-formatter/index.ts +0 -86
- package/genes/markdown-formatter/phenotype.json +0 -32
- package/genes/orch/.cloud-manifest.json +0 -6
- package/genes/orch/.gene-manifest.json +0 -8
- package/genes/orch/SKILL.md +0 -504
- package/genes/orch/phenotype.json +0 -28
- package/genes/particle-barneshut/.cloud-manifest.json +0 -6
- package/genes/particle-barneshut/.compile-result.json +0 -12
- package/genes/particle-barneshut/README.md +0 -55
- package/genes/particle-barneshut/gene.ir.wasm +0 -0
- package/genes/particle-barneshut/gene.wasm +0 -0
- package/genes/particle-barneshut/index.ts +0 -486
- package/genes/particle-barneshut/phenotype.json +0 -137
- package/genes/particle-brute/.cloud-manifest.json +0 -6
- package/genes/particle-brute/.compile-result.json +0 -12
- package/genes/particle-brute/README.md +0 -55
- package/genes/particle-brute/gene.ir.wasm +0 -0
- package/genes/particle-brute/gene.wasm +0 -0
- package/genes/particle-brute/index.ts +0 -277
- package/genes/particle-brute/phenotype.json +0 -137
- package/genes/particle-spatial/.cloud-manifest.json +0 -6
- package/genes/particle-spatial/.compile-result.json +0 -12
- package/genes/particle-spatial/README.md +0 -53
- package/genes/particle-spatial/gene.ir.wasm +0 -0
- package/genes/particle-spatial/gene.wasm +0 -0
- package/genes/particle-spatial/index.ts +0 -352
- package/genes/particle-spatial/phenotype.json +0 -137
- package/genes/performance-optimizer/.cloud-manifest.json +0 -6
- package/genes/performance-optimizer/.gene-manifest.json +0 -8
- package/genes/performance-optimizer/SKILL.md +0 -480
- package/genes/performance-optimizer/phenotype.json +0 -28
- package/genes/plagiarism-checker/.cloud-manifest.json +0 -6
- package/genes/plagiarism-checker/.gene-manifest.json +0 -8
- package/genes/plagiarism-checker/SKILL.md +0 -342
- package/genes/plagiarism-checker/phenotype.json +0 -28
- package/genes/product-manager/.cloud-manifest.json +0 -6
- package/genes/product-manager/.gene-manifest.json +0 -8
- package/genes/product-manager/SKILL.md +0 -249
- package/genes/product-manager/phenotype.json +0 -28
- package/genes/project-reviewer/.cloud-manifest.json +0 -6
- package/genes/project-reviewer/.gene-manifest.json +0 -8
- package/genes/project-reviewer/SKILL.md +0 -312
- package/genes/project-reviewer/phenotype.json +0 -28
- package/genes/prompt-engineer/.cloud-manifest.json +0 -6
- package/genes/prompt-engineer/.gene-manifest.json +0 -8
- package/genes/prompt-engineer/SKILL.md +0 -411
- package/genes/prompt-engineer/phenotype.json +0 -28
- package/genes/prompt-review-perf/.gene-manifest.json +0 -8
- package/genes/prompt-review-perf/phenotype.json +0 -61
- package/genes/prompt-review-perf/system-prompt.md +0 -22
- package/genes/prompt-review-readability/.gene-manifest.json +0 -8
- package/genes/prompt-review-readability/phenotype.json +0 -60
- package/genes/prompt-review-readability/system-prompt.md +0 -21
- package/genes/prompt-review-security/.gene-manifest.json +0 -8
- package/genes/prompt-review-security/phenotype.json +0 -60
- package/genes/prompt-review-security/system-prompt.md +0 -21
- package/genes/readability-analyzer/.cloud-manifest.json +0 -6
- package/genes/readability-analyzer/.gene-manifest.json +0 -8
- package/genes/readability-analyzer/SKILL.md +0 -357
- package/genes/readability-analyzer/index.ts +0 -123
- package/genes/readability-analyzer/package.json +0 -1
- package/genes/readability-analyzer/phenotype.json +0 -35
- package/genes/rotifer-protocol/SKILL.md +0 -121
- package/genes/rule-router-frequency/.gene-manifest.json +0 -8
- package/genes/rule-router-frequency/phenotype.json +0 -76
- package/genes/rule-router-frequency/system-prompt.md +0 -26
- package/genes/rule-router-relevance/.gene-manifest.json +0 -8
- package/genes/rule-router-relevance/phenotype.json +0 -76
- package/genes/rule-router-relevance/system-prompt.md +0 -29
- package/genes/security-auditor/.cloud-manifest.json +0 -6
- package/genes/security-auditor/.gene-manifest.json +0 -8
- package/genes/security-auditor/SKILL.md +0 -494
- package/genes/security-auditor/phenotype.json +0 -28
- package/genes/seo-optimizer/.cloud-manifest.json +0 -6
- package/genes/seo-optimizer/.gene-manifest.json +0 -8
- package/genes/seo-optimizer/SKILL.md +0 -327
- package/genes/seo-optimizer/index.ts +0 -206
- package/genes/seo-optimizer/package.json +0 -1
- package/genes/seo-optimizer/phenotype.json +0 -1
- package/genes/source-linker/.cloud-manifest.json +0 -6
- package/genes/source-linker/index.ts +0 -88
- package/genes/source-linker/phenotype.json +0 -45
- package/genes/style-optimizer/.cloud-manifest.json +0 -6
- package/genes/style-optimizer/.gene-manifest.json +0 -8
- package/genes/style-optimizer/SKILL.md +0 -285
- package/genes/style-optimizer/phenotype.json +0 -28
- package/genes/tech-lead/.cloud-manifest.json +0 -6
- package/genes/tech-lead/.gene-manifest.json +0 -8
- package/genes/tech-lead/SKILL.md +0 -451
- package/genes/tech-lead/phenotype.json +0 -28
- package/genes/test-wrap/.cloud-manifest.json +0 -6
- package/genes/test-wrap/.gene-manifest.json +0 -8
- package/genes/test-wrap/phenotype.json +0 -28
- package/genes/testing-strategist/.cloud-manifest.json +0 -6
- package/genes/testing-strategist/.gene-manifest.json +0 -8
- package/genes/testing-strategist/SKILL.md +0 -500
- package/genes/testing-strategist/phenotype.json +0 -28
- package/genes/text-summarizer/.cloud-manifest.json +0 -6
- package/genes/text-summarizer/README.md +0 -34
- package/genes/text-summarizer/index.ts +0 -122
- package/genes/text-summarizer/phenotype.json +0 -32
- package/genes/tone-analyzer/.cloud-manifest.json +0 -6
- package/genes/tone-analyzer/.gene-manifest.json +0 -8
- package/genes/tone-analyzer/SKILL.md +0 -410
- package/genes/tone-analyzer/phenotype.json +0 -28
- package/genes/translator/.cloud-manifest.json +0 -6
- package/genes/translator/.gene-manifest.json +0 -8
- package/genes/translator/SKILL.md +0 -355
- package/genes/translator/phenotype.json +0 -28
- package/genes/ui-components/.cloud-manifest.json +0 -6
- package/genes/ui-components/.gene-manifest.json +0 -8
- package/genes/ui-components/SKILL.md +0 -467
- package/genes/ui-components/phenotype.json +0 -28
- package/genes/uiux-designer/.cloud-manifest.json +0 -6
- package/genes/uiux-designer/.gene-manifest.json +0 -8
- package/genes/uiux-designer/SKILL.md +0 -353
- package/genes/uiux-designer/phenotype.json +0 -28
- package/genes/url-extractor/.cloud-manifest.json +0 -6
- package/genes/url-extractor/README.md +0 -37
- package/genes/url-extractor/index.ts +0 -86
- package/genes/url-extractor/phenotype.json +0 -48
- package/genes/ux-patterns/.cloud-manifest.json +0 -6
- package/genes/ux-patterns/.gene-manifest.json +0 -8
- package/genes/ux-patterns/SKILL.md +0 -872
- package/genes/ux-patterns/phenotype.json +0 -28
- package/genes/web3-components/.cloud-manifest.json +0 -6
- package/genes/web3-components/.gene-manifest.json +0 -8
- package/genes/web3-components/SKILL.md +0 -390
- package/genes/web3-components/phenotype.json +0 -28
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,14 @@ 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
|
+
|
|
8
16
|
## [0.8.1] - 2026-03-27
|
|
9
17
|
|
|
10
18
|
### Added
|
|
@@ -18,6 +26,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
18
26
|
- SVG animation generator with rotifer.dev design system alignment
|
|
19
27
|
- Experiment results with 3 reproducible runs
|
|
20
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
|
+
|
|
21
35
|
## [0.8.0] - 2026-02-17
|
|
22
36
|
|
|
23
37
|
### Added
|
|
@@ -67,12 +81,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
67
81
|
|
|
68
82
|
### Added
|
|
69
83
|
|
|
70
|
-
- **CLI: `rotifer info <gene-
|
|
84
|
+
- **CLI: `rotifer info <gene-ref>`** — display detailed gene information (description, domain, version, fitness, reputation)
|
|
71
85
|
- **CLI: `rotifer list`** — list local genes in current project with optional `--domain` filter
|
|
72
86
|
- **CLI: `rotifer run <gene-name>`** — directly execute a single gene with WASM sandbox or Node.js fallback
|
|
73
87
|
- **CLI: `rotifer versions <owner> <name>`** — display version history chain for a gene
|
|
74
88
|
- **CLI: `rotifer whoami`** — show current authentication status
|
|
75
|
-
- **CLI: `rotifer stats <gene-
|
|
89
|
+
- **CLI: `rotifer stats <gene-ref>`** — display download statistics for a gene
|
|
76
90
|
- **CLI: `rotifer compare <id...>`** — compare 2-5 genes side by side by fitness and reputation
|
|
77
91
|
|
|
78
92
|
### Changed
|
|
@@ -179,7 +193,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
179
193
|
- Phenotype schema display (inputSchema/outputSchema)
|
|
180
194
|
- Stats: version, R(g), downloads, WASM size, dates
|
|
181
195
|
- One-click install command copy
|
|
182
|
-
- **
|
|
196
|
+
- **Creator Profile Pages** — each creator has a page at `/developers/[user]/` with:
|
|
183
197
|
- R(d) reputation score and stats grid
|
|
184
198
|
- Published gene list with links
|
|
185
199
|
- **Gene Registry Upgrade** — `/genes/` listing page now fetches from Cloud API
|
|
@@ -266,13 +280,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
266
280
|
|
|
267
281
|
### Added
|
|
268
282
|
|
|
269
|
-
- **Reputation System** — measurable trust signals for genes and
|
|
283
|
+
- **Reputation System** — measurable trust signals for genes and creators
|
|
270
284
|
- Gene reputation R(g) = α·Arena + β·Usage + γ·Stability (weights: 0.5, 0.3, 0.2)
|
|
271
|
-
-
|
|
285
|
+
- Creator reputation R(d) initially launched as a plain average of gene reputations plus community bonus
|
|
272
286
|
- Time-based decay (5%/month, floor at 0.01) prevents reputation stagnation
|
|
273
|
-
- `rotifer reputation <gene-
|
|
274
|
-
- `rotifer reputation --mine` — view your
|
|
275
|
-
- `rotifer reputation --leaderboard` — top
|
|
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
|
|
276
290
|
- Database migration `003_reputation.sql` with `gene_reputation` and `developer_reputation` tables
|
|
277
291
|
- Server-side reputation computation via PostgreSQL functions
|
|
278
292
|
- Reputation leaderboard API (`get_reputation_leaderboard()`)
|
|
@@ -309,16 +323,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
309
323
|
|
|
310
324
|
### Added
|
|
311
325
|
|
|
312
|
-
- **Cloud Binding** — Cross-
|
|
326
|
+
- **Cloud Binding** — Cross-creator gene sharing via Supabase-backed REST API
|
|
313
327
|
- `rotifer login` — GitHub OAuth authentication via PKCE flow
|
|
314
328
|
- `rotifer logout` — Clear cloud credentials
|
|
315
329
|
- `rotifer publish <gene>` — Upload gene (phenotype + WASM) to cloud registry, saves `.cloud-manifest.json`
|
|
316
330
|
- `rotifer search [query]` — Search and browse cloud gene registry
|
|
317
|
-
- `rotifer install <gene-
|
|
331
|
+
- `rotifer install <gene-ref>` — Download gene from cloud to local project
|
|
318
332
|
- Cloud Binding REST API specification (`docs/cloud-binding-api.md`)
|
|
319
333
|
- Supabase database schema with RLS policies (see `supabase/README.md` for self-hosting guide)
|
|
320
334
|
|
|
321
|
-
- **Cloud Arena** — Remote Arena competition across
|
|
335
|
+
- **Cloud Arena** — Remote Arena competition across creators
|
|
322
336
|
- `rotifer arena submit --cloud` — Submit gene to cloud Arena
|
|
323
337
|
- `rotifer arena list --cloud` — View cloud Arena rankings
|
|
324
338
|
- `rotifer arena watch --cloud` — Real-time cloud ranking updates (polling)
|
package/README.md
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
[](https://nodejs.org/)
|
|
7
7
|
[](https://github.com/rotifer-protocol/rotifer-spec)
|
|
8
|
-
[](https://
|
|
8
|
+
[](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.
|
|
12
|
+
> **Status:** v0.8.5 — public 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
|
|
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
|
|
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
|
-
|
|
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/
|
|
123
|
-
├── src/ TypeScript CLI
|
|
124
|
-
│ ├── 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
|
-
│
|
|
127
|
-
|
|
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
|
|
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** |
|
|
140
|
-
| **Core** | Rust +
|
|
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
|
|
150
|
-
| `rotifer wrap <name>` | Wrap a function as a
|
|
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
|
|
153
|
-
| `rotifer
|
|
154
|
-
| `rotifer
|
|
155
|
-
| `rotifer
|
|
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
|
|
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-
|
|
161
|
-
| `rotifer
|
|
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
|
|
207
|
-
npm run lint # Type
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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
|
-
| **
|
|
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
|
-
|
|
254
|
-
|
|
255
|
-
-
|
|
256
|
-
-
|
|
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://
|
|
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)
|
|
6
6
|
[](https://nodejs.org/)
|
|
7
7
|
[](https://github.com/rotifer-protocol/rotifer-spec)
|
|
8
|
-
[](https://
|
|
8
|
+
[](https://rotifer.dev/discord)
|
|
9
9
|
|
|
10
10
|
**Rotifer Protocol** 的开发环境——构建基因、运行 Arena 竞争、通过 Cloud 共享、模拟代理进化。
|
|
11
11
|
|
|
12
|
-
> **状态:** v0.8.
|
|
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
|
-
|
|
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
|
|
124
|
-
│ ├── commands/
|
|
125
|
-
│ ├──
|
|
126
|
-
│ └──
|
|
127
|
-
├── genes/
|
|
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
|
|
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]` |
|
|
147
|
-
| `rotifer scan [path]` |
|
|
148
|
-
| `rotifer wrap <name>` |
|
|
149
|
-
| `rotifer test [name]` |
|
|
150
|
-
| `rotifer compile [name]` |
|
|
151
|
-
| `rotifer
|
|
152
|
-
| `rotifer
|
|
153
|
-
| `rotifer
|
|
154
|
-
| `rotifer
|
|
155
|
-
| `rotifer
|
|
156
|
-
| `rotifer
|
|
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 IR(WASM) |
|
|
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 # 运行
|
|
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**
|
|
245
|
+
> 本项目处于 **alpha** 阶段。下表展示了当前各 URAA 层级的真实实现状态。
|
|
215
246
|
|
|
216
247
|
| URAA 层级 | 规范名称 | 完成度 | 已可用 | 规划中 |
|
|
217
248
|
|-----------|---------|--------|--------|--------|
|
|
@@ -243,24 +274,16 @@ bash demo.sh
|
|
|
243
274
|
|
|
244
275
|
## 路线图
|
|
245
276
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
-
|
|
249
|
-
-
|
|
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://
|
|
286
|
+
- [Discord](https://rotifer.dev/discord) — 加入讨论
|
|
264
287
|
- [GitHub Discussions](https://github.com/rotifer-protocol/rotifer-playground/discussions) — 问题与提案
|
|
265
288
|
|
|
266
289
|
## 参与贡献
|
package/dist/cloud/auth.d.ts
CHANGED
|
@@ -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
|
|
17
|
-
*
|
|
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
|
|
22
|
+
export declare function startOAuthCallbackServer(): Promise<{
|
|
23
|
+
port: number;
|
|
24
|
+
waitForCallback: Promise<string>;
|
|
25
|
+
}>;
|
|
20
26
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/cloud/auth.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/cloud/auth.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
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
|
|
135
|
-
*
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
182
|
-
|
|
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
|
-
|
|
204
|
+
callbackReject(new Error("Login timed out after 120 seconds"));
|
|
190
205
|
}, 120_000);
|
|
191
206
|
});
|
|
192
207
|
}
|