@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.
- package/CHANGELOG.md +38 -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 +152 -72
- 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 +94 -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 +302 -26
- 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 +114 -31
- 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 +269 -29
- 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 +63 -0
- package/dist/runtime/domain-failover.d.ts.map +1 -0
- package/dist/runtime/domain-failover.js +164 -0
- package/dist/runtime/domain-failover.js.map +1 -0
- 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/genes/debugger/SKILL.md
DELETED
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: debugger
|
|
3
|
-
description: Systematic debugging guide for AI and Web3 applications. Diagnose errors, analyze logs, and identify root causes. Use when troubleshooting issues, analyzing errors, or when the user mentions bug, error, not working, debug, or fix.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Debugger (问题诊断师)
|
|
7
|
-
|
|
8
|
-
**Goal**: 系统化排查问题,快速定位根因,提供修复方案。
|
|
9
|
-
|
|
10
|
-
**原则**: 不要猜,要验证。
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Debugging Mindset
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
问题 → 复现 → 隔离 → 定位 → 修复 → 验证
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### 排查黄金法则
|
|
21
|
-
|
|
22
|
-
1. **先复现**: 不能稳定复现的问题不要急着修
|
|
23
|
-
2. **二分法**: 缩小范围,逐步排除
|
|
24
|
-
3. **看日志**: 错误信息是最好的线索
|
|
25
|
-
4. **最小化**: 创建最小复现用例
|
|
26
|
-
5. **记录**: 记录排查过程,避免重复尝试
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## 1. Error Classification
|
|
31
|
-
|
|
32
|
-
### 错误类型速查
|
|
33
|
-
|
|
34
|
-
| 错误类型 | 常见原因 | 排查方向 |
|
|
35
|
-
|----------|----------|----------|
|
|
36
|
-
| TypeError | null/undefined 访问 | 检查数据流 |
|
|
37
|
-
| SyntaxError | 代码语法错误 | 检查引号、括号 |
|
|
38
|
-
| ReferenceError | 变量未定义 | 检查作用域、导入 |
|
|
39
|
-
| NetworkError | 网络/API 问题 | 检查请求、响应 |
|
|
40
|
-
| TimeoutError | 操作超时 | 检查异步逻辑 |
|
|
41
|
-
| ValidationError | 数据验证失败 | 检查输入格式 |
|
|
42
|
-
|
|
43
|
-
### 分层排查
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
前端 ─── 网络 ─── 后端 ─── 数据库 ─── 外部服务
|
|
47
|
-
↓ ↓ ↓ ↓ ↓
|
|
48
|
-
Console Network Logs Query API Logs
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## 2. Frontend Debugging
|
|
54
|
-
|
|
55
|
-
### Console 技巧
|
|
56
|
-
|
|
57
|
-
```typescript
|
|
58
|
-
// 基础
|
|
59
|
-
console.log('value:', value)
|
|
60
|
-
|
|
61
|
-
// 表格 (数组/对象)
|
|
62
|
-
console.table(users)
|
|
63
|
-
|
|
64
|
-
// 分组
|
|
65
|
-
console.group('API Request')
|
|
66
|
-
console.log('URL:', url)
|
|
67
|
-
console.log('Payload:', payload)
|
|
68
|
-
console.groupEnd()
|
|
69
|
-
|
|
70
|
-
// 计时
|
|
71
|
-
console.time('fetch')
|
|
72
|
-
await fetch(url)
|
|
73
|
-
console.timeEnd('fetch')
|
|
74
|
-
|
|
75
|
-
// 条件断点
|
|
76
|
-
if (user.id === 'problem-id') {
|
|
77
|
-
debugger
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### React DevTools
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
1. Components 面板 → 检查 props/state
|
|
85
|
-
2. Profiler 面板 → 检查重渲染
|
|
86
|
-
3. 搜索组件名快速定位
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 常见前端问题
|
|
90
|
-
|
|
91
|
-
| 症状 | 可能原因 | 解决方案 |
|
|
92
|
-
|------|----------|----------|
|
|
93
|
-
| 白屏 | JS 错误阻断渲染 | 检查 Console 错误 |
|
|
94
|
-
| 不更新 | State 引用未变 | 确保返回新对象 |
|
|
95
|
-
| 闪烁 | 条件渲染逻辑错误 | 添加 loading 状态 |
|
|
96
|
-
| 无限循环 | useEffect 依赖错误 | 检查依赖数组 |
|
|
97
|
-
| 内存泄漏 | 未清理订阅/定时器 | 添加 cleanup |
|
|
98
|
-
|
|
99
|
-
### React 常见坑
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
// ❌ 无限循环
|
|
103
|
-
useEffect(() => {
|
|
104
|
-
setData(fetchData()) // 触发重渲染,又触发 effect
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
// ✅ 正确
|
|
108
|
-
useEffect(() => {
|
|
109
|
-
fetchData().then(setData)
|
|
110
|
-
}, []) // 空依赖
|
|
111
|
-
|
|
112
|
-
// ❌ State 不更新
|
|
113
|
-
const [items, setItems] = useState([])
|
|
114
|
-
items.push(newItem) // 直接修改
|
|
115
|
-
setItems(items) // 引用没变,不更新
|
|
116
|
-
|
|
117
|
-
// ✅ 正确
|
|
118
|
-
setItems([...items, newItem])
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
## 3. Network Debugging
|
|
124
|
-
|
|
125
|
-
### 检查请求
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
DevTools → Network 面板
|
|
129
|
-
1. 请求是否发出?
|
|
130
|
-
2. URL 是否正确?
|
|
131
|
-
3. Headers 是否正确?(Authorization, Content-Type)
|
|
132
|
-
4. Payload 是否正确?
|
|
133
|
-
5. 响应状态码?
|
|
134
|
-
6. 响应内容?
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### 常见网络问题
|
|
138
|
-
|
|
139
|
-
| 状态码 | 可能原因 | 排查方向 |
|
|
140
|
-
|--------|----------|----------|
|
|
141
|
-
| 400 | 请求格式错误 | 检查请求体 |
|
|
142
|
-
| 401 | 认证失败 | 检查 token |
|
|
143
|
-
| 403 | 权限不足 | 检查用户权限 |
|
|
144
|
-
| 404 | 路径错误 | 检查 URL |
|
|
145
|
-
| 405 | 方法错误 | 检查 HTTP 方法 |
|
|
146
|
-
| 500 | 服务端错误 | 查看服务端日志 |
|
|
147
|
-
| 502/503 | 服务不可用 | 检查部署状态 |
|
|
148
|
-
|
|
149
|
-
### CORS 问题
|
|
150
|
-
|
|
151
|
-
```
|
|
152
|
-
错误: Access-Control-Allow-Origin
|
|
153
|
-
|
|
154
|
-
排查:
|
|
155
|
-
1. 服务端是否设置 CORS headers?
|
|
156
|
-
2. 预检请求 (OPTIONS) 是否正确响应?
|
|
157
|
-
3. 是否使用了不允许的 header?
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
## 4. AI API Debugging
|
|
163
|
-
|
|
164
|
-
### 常见 AI 错误
|
|
165
|
-
|
|
166
|
-
| 错误 | 原因 | 解决方案 |
|
|
167
|
-
|------|------|----------|
|
|
168
|
-
| 401 Invalid API Key | 密钥错误/过期 | 检查环境变量 |
|
|
169
|
-
| 429 Rate Limited | 请求过快 | 添加重试/限流 |
|
|
170
|
-
| 400 Token Limit | 上下文过长 | 截断/分块 |
|
|
171
|
-
| 500 Server Error | OpenAI 服务问题 | 添加 fallback |
|
|
172
|
-
| Timeout | 响应时间过长 | 增加超时/用流式 |
|
|
173
|
-
|
|
174
|
-
### 排查步骤
|
|
175
|
-
|
|
176
|
-
```typescript
|
|
177
|
-
// 1. 检查 API 密钥
|
|
178
|
-
console.log('API Key exists:', !!process.env.OPENAI_API_KEY)
|
|
179
|
-
console.log('API Key prefix:', process.env.OPENAI_API_KEY?.slice(0, 7))
|
|
180
|
-
|
|
181
|
-
// 2. 检查请求参数
|
|
182
|
-
console.log('Messages count:', messages.length)
|
|
183
|
-
console.log('Token estimate:', estimateTokens(messages))
|
|
184
|
-
|
|
185
|
-
// 3. 检查响应
|
|
186
|
-
try {
|
|
187
|
-
const response = await openai.chat.completions.create({...})
|
|
188
|
-
console.log('Usage:', response.usage)
|
|
189
|
-
} catch (error) {
|
|
190
|
-
console.error('Error type:', error.constructor.name)
|
|
191
|
-
console.error('Error message:', error.message)
|
|
192
|
-
console.error('Error code:', error.code)
|
|
193
|
-
}
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Token 超限处理
|
|
197
|
-
|
|
198
|
-
```typescript
|
|
199
|
-
// 估算 token 数
|
|
200
|
-
function estimateTokens(text: string): number {
|
|
201
|
-
return Math.ceil(text.length / 4) // 粗略估算
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// 截断策略
|
|
205
|
-
function truncateMessages(messages: Message[], maxTokens: number): Message[] {
|
|
206
|
-
let total = 0
|
|
207
|
-
const result: Message[] = []
|
|
208
|
-
|
|
209
|
-
// 从最新消息往前保留
|
|
210
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
211
|
-
const tokens = estimateTokens(messages[i].content)
|
|
212
|
-
if (total + tokens > maxTokens) break
|
|
213
|
-
result.unshift(messages[i])
|
|
214
|
-
total += tokens
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
return result
|
|
218
|
-
}
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
## 5. Web3 Debugging
|
|
224
|
-
|
|
225
|
-
### 常见 Web3 错误
|
|
226
|
-
|
|
227
|
-
| 错误 | 原因 | 解决方案 |
|
|
228
|
-
|------|------|----------|
|
|
229
|
-
| User rejected | 用户拒绝签名 | 添加用户提示 |
|
|
230
|
-
| Insufficient funds | 余额不足 | 检查余额+Gas |
|
|
231
|
-
| Nonce too low | Nonce 冲突 | 等待或加速前一笔 |
|
|
232
|
-
| Gas estimation failed | 交易会失败 | 检查参数/权限 |
|
|
233
|
-
| Network mismatch | 网络不匹配 | 提示切换网络 |
|
|
234
|
-
|
|
235
|
-
### 交易排查
|
|
236
|
-
|
|
237
|
-
```typescript
|
|
238
|
-
// 1. 检查钱包状态
|
|
239
|
-
console.log('Connected:', isConnected)
|
|
240
|
-
console.log('Address:', address)
|
|
241
|
-
console.log('Chain ID:', chainId)
|
|
242
|
-
|
|
243
|
-
// 2. 检查余额
|
|
244
|
-
const balance = await publicClient.getBalance({ address })
|
|
245
|
-
console.log('Balance:', formatEther(balance))
|
|
246
|
-
|
|
247
|
-
// 3. 模拟交易
|
|
248
|
-
try {
|
|
249
|
-
await publicClient.simulateContract({
|
|
250
|
-
address: contractAddress,
|
|
251
|
-
abi,
|
|
252
|
-
functionName: 'transfer',
|
|
253
|
-
args: [to, amount],
|
|
254
|
-
})
|
|
255
|
-
console.log('Simulation passed')
|
|
256
|
-
} catch (error) {
|
|
257
|
-
console.error('Simulation failed:', error.message)
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
// 4. 检查 Gas
|
|
261
|
-
const gasEstimate = await publicClient.estimateContractGas({...})
|
|
262
|
-
console.log('Gas estimate:', gasEstimate)
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
### 交易追踪
|
|
266
|
-
|
|
267
|
-
```typescript
|
|
268
|
-
// 使用 Etherscan API 查询交易状态
|
|
269
|
-
const txStatus = await fetch(
|
|
270
|
-
`https://api.etherscan.io/api?module=transaction&action=gettxreceiptstatus&txhash=${hash}`
|
|
271
|
-
)
|
|
272
|
-
|
|
273
|
-
// 或使用 viem
|
|
274
|
-
const receipt = await publicClient.waitForTransactionReceipt({ hash })
|
|
275
|
-
console.log('Status:', receipt.status) // 'success' | 'reverted'
|
|
276
|
-
console.log('Gas used:', receipt.gasUsed)
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
## 6. Backend Debugging
|
|
282
|
-
|
|
283
|
-
### 日志级别
|
|
284
|
-
|
|
285
|
-
```typescript
|
|
286
|
-
// lib/logger.ts
|
|
287
|
-
const logger = {
|
|
288
|
-
debug: (msg: string, data?: object) => {
|
|
289
|
-
if (process.env.LOG_LEVEL === 'debug') {
|
|
290
|
-
console.log(`[DEBUG] ${msg}`, data)
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
info: (msg: string, data?: object) => {
|
|
294
|
-
console.log(`[INFO] ${msg}`, data)
|
|
295
|
-
},
|
|
296
|
-
warn: (msg: string, data?: object) => {
|
|
297
|
-
console.warn(`[WARN] ${msg}`, data)
|
|
298
|
-
},
|
|
299
|
-
error: (msg: string, error?: Error) => {
|
|
300
|
-
console.error(`[ERROR] ${msg}`, {
|
|
301
|
-
message: error?.message,
|
|
302
|
-
stack: error?.stack,
|
|
303
|
-
})
|
|
304
|
-
},
|
|
305
|
-
}
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
### 请求追踪
|
|
309
|
-
|
|
310
|
-
```typescript
|
|
311
|
-
// middleware.ts
|
|
312
|
-
export function middleware(request: NextRequest) {
|
|
313
|
-
const requestId = crypto.randomUUID()
|
|
314
|
-
|
|
315
|
-
console.log(`[${requestId}] ${request.method} ${request.url}`)
|
|
316
|
-
|
|
317
|
-
const response = NextResponse.next()
|
|
318
|
-
response.headers.set('x-request-id', requestId)
|
|
319
|
-
|
|
320
|
-
return response
|
|
321
|
-
}
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
### 数据库调试
|
|
325
|
-
|
|
326
|
-
```typescript
|
|
327
|
-
// Prisma 查询日志
|
|
328
|
-
const prisma = new PrismaClient({
|
|
329
|
-
log: ['query', 'error', 'warn'],
|
|
330
|
-
})
|
|
331
|
-
|
|
332
|
-
// 检查慢查询
|
|
333
|
-
prisma.$on('query', (e) => {
|
|
334
|
-
if (e.duration > 100) {
|
|
335
|
-
console.warn(`Slow query (${e.duration}ms):`, e.query)
|
|
336
|
-
}
|
|
337
|
-
})
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
---
|
|
341
|
-
|
|
342
|
-
## 7. Debugging Checklist
|
|
343
|
-
|
|
344
|
-
### 通用排查清单
|
|
345
|
-
|
|
346
|
-
```markdown
|
|
347
|
-
## 问题排查清单
|
|
348
|
-
|
|
349
|
-
### 1. 信息收集
|
|
350
|
-
- [ ] 错误信息是什么?
|
|
351
|
-
- [ ] 哪个页面/功能出问题?
|
|
352
|
-
- [ ] 何时开始出现?
|
|
353
|
-
- [ ] 能否稳定复现?
|
|
354
|
-
|
|
355
|
-
### 2. 环境检查
|
|
356
|
-
- [ ] 本地还是生产环境?
|
|
357
|
-
- [ ] 特定浏览器/设备?
|
|
358
|
-
- [ ] 环境变量正确?
|
|
359
|
-
- [ ] 依赖版本正确?
|
|
360
|
-
|
|
361
|
-
### 3. 日志检查
|
|
362
|
-
- [ ] Console 有错误吗?
|
|
363
|
-
- [ ] Network 请求正常吗?
|
|
364
|
-
- [ ] 服务端日志有什么?
|
|
365
|
-
|
|
366
|
-
### 4. 代码检查
|
|
367
|
-
- [ ] 最近有什么改动?
|
|
368
|
-
- [ ] 是否引入了新依赖?
|
|
369
|
-
- [ ] 相关代码逻辑正确吗?
|
|
370
|
-
|
|
371
|
-
### 5. 隔离测试
|
|
372
|
-
- [ ] 最小复现用例
|
|
373
|
-
- [ ] 硬编码测试数据
|
|
374
|
-
- [ ] 逐步注释排除
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
---
|
|
378
|
-
|
|
379
|
-
## Quick Reference
|
|
380
|
-
|
|
381
|
-
### 调试工具
|
|
382
|
-
|
|
383
|
-
```
|
|
384
|
-
前端: Chrome DevTools, React DevTools
|
|
385
|
-
网络: Network 面板, Postman
|
|
386
|
-
后端: console.log, debugger, Prisma Studio
|
|
387
|
-
Web3: Etherscan, Tenderly
|
|
388
|
-
AI: OpenAI Playground
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
### 常用命令
|
|
392
|
-
|
|
393
|
-
```bash
|
|
394
|
-
# 查看日志
|
|
395
|
-
tail -f app.log
|
|
396
|
-
|
|
397
|
-
# 环境变量检查
|
|
398
|
-
printenv | grep API
|
|
399
|
-
|
|
400
|
-
# 端口占用
|
|
401
|
-
lsof -i :3000
|
|
402
|
-
|
|
403
|
-
# 进程查看
|
|
404
|
-
ps aux | grep node
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
### 二分法模板
|
|
408
|
-
|
|
409
|
-
```
|
|
410
|
-
1. 问题出现在 A 还是 B?
|
|
411
|
-
→ 确认是 A
|
|
412
|
-
2. 问题出现在 A1 还是 A2?
|
|
413
|
-
→ 确认是 A2
|
|
414
|
-
3. 问题出现在 A2a 还是 A2b?
|
|
415
|
-
→ 找到根因
|
|
416
|
-
```
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"domain": "code.debug",
|
|
3
|
-
"description": "Systematic debugging guide for AI and Web3 applications. Diagnose errors, analyze logs, and identify root causes. Use when troubleshooting issues, analyzing errors, or when the user mentions bug, error, not working, debug, or fix.",
|
|
4
|
-
"inputSchema": {
|
|
5
|
-
"type": "object",
|
|
6
|
-
"properties": {
|
|
7
|
-
"prompt": {
|
|
8
|
-
"type": "string"
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
"required": []
|
|
12
|
-
},
|
|
13
|
-
"outputSchema": {
|
|
14
|
-
"type": "object",
|
|
15
|
-
"properties": {
|
|
16
|
-
"result": {
|
|
17
|
-
"type": "string"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
"dependencies": [],
|
|
22
|
-
"version": "0.1.0",
|
|
23
|
-
"author": "rotifer-team",
|
|
24
|
-
"createdAt": 1771939411990,
|
|
25
|
-
"fidelity": "Wrapped",
|
|
26
|
-
"transparency": "Open",
|
|
27
|
-
"source": "skill"
|
|
28
|
-
}
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: design-tokens
|
|
3
|
-
description: Parameterized design token system. Dynamically generates CSS variables for colors, border-radius, spacing, and typography based on brand parameters.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Design Tokens
|
|
7
|
-
|
|
8
|
-
**Purpose**: UI design foundation layer that dynamically generates design variables from style parameters.
|
|
9
|
-
|
|
10
|
-
**Core Value**: Automatic mapping from style dimension values to concrete CSS variables.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Design Philosophy
|
|
15
|
-
|
|
16
|
-
**Core Principle**: Parameter-driven, not hardcoded presets.
|
|
17
|
-
|
|
18
|
-
| Principle | Description |
|
|
19
|
-
|-----------|-------------|
|
|
20
|
-
| Parameter mapping | 0-100 dimension values automatically convert to concrete CSS values |
|
|
21
|
-
| Transparent formulas | Mapping logic is clear and predictable |
|
|
22
|
-
| Fine-tunable | Generated values can still be manually adjusted |
|
|
23
|
-
| Backward compatible | Default values used when parameters are unspecified |
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Parameter to Token Mapping
|
|
28
|
-
|
|
29
|
-
### Input: Style Parameters
|
|
30
|
-
|
|
31
|
-
```typescript
|
|
32
|
-
interface DesignTokenInput {
|
|
33
|
-
primaryHue?: number; // 0-360 (HSL hue)
|
|
34
|
-
mode?: "light" | "dark"; // Color mode
|
|
35
|
-
density?: "compact" | "normal" | "spacious"; // Spacing density
|
|
36
|
-
borderRadius?: "sharp" | "rounded" | "pill"; // Border radius style
|
|
37
|
-
}
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Output: CSS Variables
|
|
41
|
-
|
|
42
|
-
```css
|
|
43
|
-
:root {
|
|
44
|
-
/* Colors */
|
|
45
|
-
--color-primary: ...;
|
|
46
|
-
--color-surface: ...;
|
|
47
|
-
--color-text: ...;
|
|
48
|
-
|
|
49
|
-
/* Spacing */
|
|
50
|
-
--space-0 through --space-9: ...;
|
|
51
|
-
|
|
52
|
-
/* Border Radius */
|
|
53
|
-
--radius-sm: ...;
|
|
54
|
-
--radius-md: ...;
|
|
55
|
-
--radius-lg: ...;
|
|
56
|
-
--radius-full: ...;
|
|
57
|
-
|
|
58
|
-
/* Typography */
|
|
59
|
-
--font-sans: ...;
|
|
60
|
-
--font-mono: ...;
|
|
61
|
-
--text-xs through --text-3xl: ...;
|
|
62
|
-
|
|
63
|
-
/* Shadows */
|
|
64
|
-
--shadow-sm through --shadow-xl: ...;
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Mapping Formula Details
|
|
71
|
-
|
|
72
|
-
### 1. Color Palette Generation (primaryHue + mode → CSS)
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
function generatePalette(hue: number, dark: boolean) {
|
|
76
|
-
// Generates 15 color tokens from a single hue value
|
|
77
|
-
// Dark mode inverts lightness values
|
|
78
|
-
// Complementary accent color at hue+30°
|
|
79
|
-
return {
|
|
80
|
-
'--color-bg': hsl(hue, saturation, lightness),
|
|
81
|
-
'--color-surface': ...,
|
|
82
|
-
'--color-primary': hsl(hue, 70, dark ? 55 : 45),
|
|
83
|
-
'--color-accent': hsl((hue + 30) % 360, 60, ...),
|
|
84
|
-
// ... 15 total color tokens
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 2. Spacing Scale (density → CSS)
|
|
90
|
-
|
|
91
|
-
```typescript
|
|
92
|
-
function generateSpacing(density: string) {
|
|
93
|
-
// base: compact=4px, normal=6px, spacious=8px
|
|
94
|
-
// scale multipliers: [0.25, 0.5, 1, 1.5, 2, 3, 4, 6, 8, 12]
|
|
95
|
-
// Generates --space-0 through --space-9
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
| Density | Base | --space-2 | --space-4 | --space-6 |
|
|
100
|
-
|---------|------|-----------|-----------|-----------|
|
|
101
|
-
| compact | 4px | 4px | 12px | 24px |
|
|
102
|
-
| normal | 6px | 6px | 18px | 36px |
|
|
103
|
-
| spacious | 8px | 8px | 24px | 48px |
|
|
104
|
-
|
|
105
|
-
### 3. Border Radius (borderRadius → CSS)
|
|
106
|
-
|
|
107
|
-
| Style | --radius-sm | --radius-md | --radius-lg | --radius-full |
|
|
108
|
-
|-------|-------------|-------------|-------------|---------------|
|
|
109
|
-
| sharp | 2px | 4px | 6px | 8px |
|
|
110
|
-
| rounded | 4px | 8px | 12px | 9999px |
|
|
111
|
-
| pill | 9999px | 9999px | 9999px | 9999px |
|
|
112
|
-
|
|
113
|
-
### 4. Typography (fixed, does not vary with parameters)
|
|
114
|
-
|
|
115
|
-
```css
|
|
116
|
-
:root {
|
|
117
|
-
--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
118
|
-
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
|
|
119
|
-
|
|
120
|
-
--text-xs: 0.75rem; /* 12px */
|
|
121
|
-
--text-sm: 0.875rem; /* 14px */
|
|
122
|
-
--text-base: 1rem; /* 16px */
|
|
123
|
-
--text-lg: 1.125rem; /* 18px */
|
|
124
|
-
--text-xl: 1.25rem; /* 20px */
|
|
125
|
-
--text-2xl: 1.5rem; /* 24px */
|
|
126
|
-
--text-3xl: 2rem; /* 32px */
|
|
127
|
-
|
|
128
|
-
--line-height-tight: 1.25;
|
|
129
|
-
--line-height-normal: 1.5;
|
|
130
|
-
--line-height-relaxed: 1.75;
|
|
131
|
-
}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### 5. Shadows (mode → CSS)
|
|
135
|
-
|
|
136
|
-
Shadow opacity scales with light/dark mode:
|
|
137
|
-
|
|
138
|
-
```typescript
|
|
139
|
-
function generateShadows(dark: boolean) {
|
|
140
|
-
const opacity = dark ? 0.5 : 0.1;
|
|
141
|
-
return {
|
|
142
|
-
'--shadow-sm': `0 1px 2px rgba(0,0,0,${opacity})`,
|
|
143
|
-
'--shadow-md': `0 4px 6px rgba(0,0,0,${opacity})`,
|
|
144
|
-
'--shadow-lg': `0 10px 15px rgba(0,0,0,${opacity})`,
|
|
145
|
-
'--shadow-xl': `0 20px 25px rgba(0,0,0,${opacity})`,
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Usage Examples
|
|
153
|
-
|
|
154
|
-
### Generate from Parameters
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
import { express } from './index';
|
|
158
|
-
|
|
159
|
-
const result = await express({
|
|
160
|
-
primaryHue: 220, // Blue
|
|
161
|
-
mode: 'dark',
|
|
162
|
-
density: 'normal',
|
|
163
|
-
borderRadius: 'rounded'
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
console.log(result.css); // Full :root { ... } block
|
|
167
|
-
console.log(result.totalTokens); // Number of generated tokens
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### Use in Components
|
|
171
|
-
|
|
172
|
-
```html
|
|
173
|
-
<button style="
|
|
174
|
-
background: var(--color-primary);
|
|
175
|
-
color: var(--color-primary-fg);
|
|
176
|
-
border-radius: var(--radius-md);
|
|
177
|
-
padding: var(--space-2) var(--space-4);
|
|
178
|
-
font-family: var(--font-sans);
|
|
179
|
-
font-size: var(--text-sm);
|
|
180
|
-
box-shadow: var(--shadow-md);
|
|
181
|
-
">
|
|
182
|
-
Button
|
|
183
|
-
</button>
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Default Tokens
|
|
189
|
-
|
|
190
|
-
When no parameters are specified, defaults are used:
|
|
191
|
-
- `primaryHue`: 220 (blue)
|
|
192
|
-
- `mode`: "dark"
|
|
193
|
-
- `density`: "normal"
|
|
194
|
-
- `borderRadius`: "rounded"
|
|
195
|
-
|
|
196
|
-
This generates approximately 48 CSS custom properties covering colors, spacing, radii, typography, and shadows.
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## Tailwind CSS Integration
|
|
201
|
-
|
|
202
|
-
```javascript
|
|
203
|
-
// tailwind.config.js
|
|
204
|
-
module.exports = {
|
|
205
|
-
theme: {
|
|
206
|
-
extend: {
|
|
207
|
-
colors: {
|
|
208
|
-
primary: 'var(--color-primary)',
|
|
209
|
-
'primary-hover': 'var(--color-primary-hover)',
|
|
210
|
-
surface: 'var(--color-surface)',
|
|
211
|
-
accent: 'var(--color-accent)',
|
|
212
|
-
},
|
|
213
|
-
borderRadius: {
|
|
214
|
-
sm: 'var(--radius-sm)',
|
|
215
|
-
DEFAULT: 'var(--radius-md)',
|
|
216
|
-
lg: 'var(--radius-lg)',
|
|
217
|
-
full: 'var(--radius-full)',
|
|
218
|
-
},
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
}
|
|
222
|
-
```
|