cyberia 3.1.3 → 3.2.9
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/.env.example +0 -2
- package/.github/workflows/engine-cyberia.cd.yml +10 -8
- package/.github/workflows/engine-cyberia.ci.yml +12 -29
- package/.github/workflows/ghpkg.ci.yml +4 -4
- package/.github/workflows/npmpkg.ci.yml +28 -11
- package/.github/workflows/publish.ci.yml +21 -2
- package/.github/workflows/pwa-microservices-template-page.cd.yml +4 -5
- package/.github/workflows/pwa-microservices-template-test.ci.yml +3 -3
- package/.github/workflows/release.cd.yml +14 -10
- package/CHANGELOG.md +783 -1
- package/CLI-HELP.md +95 -18
- package/Dockerfile +0 -2
- package/README.md +290 -220
- package/bin/build.js +24 -7
- package/bin/cyberia.js +2838 -252
- package/bin/deploy.js +747 -125
- package/bin/file.js +9 -0
- package/bin/index.js +2838 -252
- package/bin/vs.js +1 -1
- package/conf.js +99 -65
- package/deployment.yaml +18 -164
- package/hardhat/hardhat.config.js +13 -13
- package/hardhat/ignition/modules/ObjectLayerToken.js +1 -1
- package/hardhat/package-lock.json +2559 -5864
- package/hardhat/package.json +14 -23
- package/hardhat/scripts/deployObjectLayerToken.js +1 -1
- package/hardhat/test/ObjectLayerToken.js +4 -2
- package/hardhat/types/ethers-contracts/ObjectLayerToken.ts +690 -0
- package/hardhat/types/ethers-contracts/common.ts +92 -0
- package/hardhat/types/ethers-contracts/factories/ObjectLayerToken__factory.ts +1055 -0
- package/hardhat/types/ethers-contracts/factories/index.ts +4 -0
- package/hardhat/types/ethers-contracts/hardhat.d.ts +47 -0
- package/hardhat/types/ethers-contracts/index.ts +6 -0
- package/jsconfig.json +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +6 -5
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +6 -5
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +18 -164
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +7 -79
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
- package/manifests/deployment/dd-test-development/deployment.yaml +112 -28
- package/manifests/deployment/dd-test-development/proxy.yaml +46 -1
- package/manifests/deployment/playwright/deployment.yaml +1 -1
- package/nodemon.json +1 -1
- package/package.json +39 -24
- package/proxy.yaml +7 -79
- package/scripts/k3s-node-setup.sh +2 -2
- package/scripts/nat-iptables.sh +103 -18
- package/scripts/rhel-grpc-setup.sh +56 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +58 -14
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +23 -14
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +5 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +148 -20
- package/src/api/core/core.controller.js +10 -10
- package/src/api/core/core.service.js +10 -10
- package/src/api/crypto/crypto.controller.js +8 -8
- package/src/api/crypto/crypto.service.js +8 -8
- package/src/api/cyberia-action/cyberia-action.controller.js +74 -0
- package/src/api/cyberia-action/cyberia-action.model.js +87 -0
- package/src/api/cyberia-action/cyberia-action.router.js +27 -0
- package/src/api/cyberia-action/cyberia-action.service.js +42 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +93 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +29 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +51 -0
- package/src/api/cyberia-entity/cyberia-entity.controller.js +74 -0
- package/src/api/cyberia-entity/cyberia-entity.model.js +24 -0
- package/src/api/cyberia-entity/cyberia-entity.router.js +27 -0
- package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +178 -0
- package/src/api/cyberia-instance/cyberia-instance.controller.js +92 -0
- package/src/api/cyberia-instance/cyberia-instance.model.js +87 -0
- package/src/api/cyberia-instance/cyberia-instance.router.js +63 -0
- package/src/api/cyberia-instance/cyberia-instance.service.js +156 -0
- package/src/api/cyberia-instance/cyberia-portal-connector.js +260 -0
- package/src/api/cyberia-instance/cyberia-world-generator.js +505 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +74 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +574 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +231 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +27 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +46 -0
- package/src/api/cyberia-map/cyberia-map.controller.js +79 -0
- package/src/api/cyberia-map/cyberia-map.model.js +30 -0
- package/src/api/cyberia-map/cyberia-map.router.js +40 -0
- package/src/api/cyberia-map/cyberia-map.service.js +74 -0
- package/src/api/cyberia-quest/cyberia-quest.controller.js +74 -0
- package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +27 -0
- package/src/api/cyberia-quest/cyberia-quest.service.js +42 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +74 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +49 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +27 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
- package/src/api/default/default.controller.js +10 -10
- package/src/api/default/default.service.js +10 -10
- package/src/api/document/document.controller.js +12 -12
- package/src/api/document/document.model.js +10 -16
- package/src/api/file/file.controller.js +8 -8
- package/src/api/file/file.model.js +10 -10
- package/src/api/file/file.ref.json +18 -0
- package/src/api/file/file.service.js +36 -36
- package/src/api/instance/instance.controller.js +10 -10
- package/src/api/instance/instance.model.js +4 -10
- package/src/api/instance/instance.service.js +10 -10
- package/src/api/ipfs/ipfs.controller.js +15 -36
- package/src/api/ipfs/ipfs.model.js +47 -47
- package/src/api/ipfs/ipfs.router.js +8 -13
- package/src/api/ipfs/ipfs.service.js +67 -129
- package/src/api/object-layer/object-layer.controller.js +12 -12
- package/src/api/object-layer/object-layer.model.js +4 -17
- package/src/api/object-layer/object-layer.router.js +30 -0
- package/src/api/object-layer/object-layer.service.js +126 -43
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +10 -10
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +6 -16
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +18 -14
- package/src/api/test/test.controller.js +8 -8
- package/src/api/test/test.service.js +8 -8
- package/src/api/user/guest.service.js +99 -0
- package/src/api/user/user.controller.js +6 -6
- package/src/api/user/user.model.js +8 -13
- package/src/api/user/user.service.js +11 -27
- package/src/cli/cluster.js +68 -21
- package/src/cli/db.js +753 -825
- package/src/cli/deploy.js +215 -125
- package/src/cli/env.js +29 -0
- package/src/cli/fs.js +82 -8
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +74 -3
- package/src/cli/kubectl.js +211 -0
- package/src/cli/release.js +340 -0
- package/src/cli/repository.js +475 -74
- package/src/cli/run.js +582 -43
- package/src/cli/secrets.js +73 -0
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/cli/test.js +3 -3
- package/src/client/Cryptokoyn.index.js +18 -22
- package/src/client/CyberiaPortal.index.js +19 -24
- package/src/client/Default.index.js +21 -34
- package/src/client/Itemledger.index.js +20 -27
- package/src/client/Underpost.index.js +19 -24
- package/src/client/components/core/404.js +4 -4
- package/src/client/components/core/500.js +4 -4
- package/src/client/components/core/Account.js +73 -60
- package/src/client/components/core/AgGrid.js +23 -33
- package/src/client/components/core/Alert.js +12 -13
- package/src/client/components/core/AppStore.js +69 -0
- package/src/client/components/core/Auth.js +35 -37
- package/src/client/components/core/Badge.js +7 -13
- package/src/client/components/core/BtnIcon.js +15 -17
- package/src/client/components/core/CalendarCore.js +43 -64
- package/src/client/components/core/Chat.js +13 -15
- package/src/client/components/core/ClientEvents.js +87 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/Content.js +17 -14
- package/src/client/components/core/Css.js +15 -71
- package/src/client/components/core/CssCore.js +12 -16
- package/src/client/components/core/D3Chart.js +4 -4
- package/src/client/components/core/Docs.js +64 -91
- package/src/client/components/core/DropDown.js +194 -96
- package/src/client/components/core/EventBus.js +92 -0
- package/src/client/components/core/EventsUI.js +14 -17
- package/src/client/components/core/FileExplorer.js +96 -228
- package/src/client/components/core/FullScreen.js +47 -75
- package/src/client/components/core/Input.js +24 -69
- package/src/client/components/core/Keyboard.js +26 -19
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +25 -31
- package/src/client/components/core/LogIn.js +43 -43
- package/src/client/components/core/LogOut.js +25 -16
- package/src/client/components/core/Modal.js +462 -179
- package/src/client/components/core/NotificationManager.js +14 -18
- package/src/client/components/core/Panel.js +54 -51
- package/src/client/components/core/PanelForm.js +44 -144
- package/src/client/components/core/Polyhedron.js +110 -214
- package/src/client/components/core/PublicProfile.js +39 -32
- package/src/client/components/core/Recover.js +48 -44
- package/src/client/components/core/Responsive.js +88 -32
- package/src/client/components/core/RichText.js +9 -18
- package/src/client/components/core/Router.js +24 -3
- package/src/client/components/core/SearchBox.js +37 -37
- package/src/client/components/core/SignUp.js +39 -30
- package/src/client/components/core/SocketIo.js +112 -30
- package/src/client/components/core/SocketIoHandler.js +75 -0
- package/src/client/components/core/Stream.js +143 -95
- package/src/client/components/core/ToggleSwitch.js +8 -20
- package/src/client/components/core/ToolTip.js +5 -17
- package/src/client/components/core/Translate.js +56 -59
- package/src/client/components/core/Validator.js +26 -16
- package/src/client/components/core/Wallet.js +15 -26
- package/src/client/components/core/Webhook.js +40 -7
- package/src/client/components/core/Worker.js +163 -27
- package/src/client/components/core/windowGetDimensions.js +7 -7
- package/src/client/components/cryptokoyn/{MenuCryptokoyn.js → AppShellCryptokoyn.js} +59 -59
- package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +15 -15
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +9 -7
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +8 -6
- package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +4 -4
- package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/SocketIoCryptokoyn.js +3 -51
- package/src/client/components/cyberia/InstanceEngineCyberia.js +781 -0
- package/src/client/components/cyberia/MapEngineCyberia.js +1836 -2
- package/src/client/components/cyberia/ObjectLayerEngine.js +19 -0
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +1220 -99
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +252 -316
- package/src/client/components/cyberia-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +136 -103
- package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +462 -32
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +15 -15
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +9 -7
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +8 -6
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +60 -0
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +3 -49
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +8 -4
- package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +91 -91
- package/src/client/components/default/AppStoreDefault.js +5 -0
- package/src/client/components/default/CssDefault.js +12 -12
- package/src/client/components/default/LogInDefault.js +9 -7
- package/src/client/components/default/LogOutDefault.js +8 -6
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +4 -4
- package/src/client/components/default/SignUpDefault.js +6 -4
- package/src/client/components/default/SocketIoDefault.js +3 -51
- package/src/client/components/default/TranslateDefault.js +3 -3
- package/src/client/components/itemledger/{MenuItemledger.js → AppShellItemledger.js} +59 -59
- package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
- package/src/client/components/itemledger/CssItemledger.js +15 -15
- package/src/client/components/itemledger/LogInItemledger.js +9 -7
- package/src/client/components/itemledger/LogOutItemledger.js +8 -6
- package/src/client/components/itemledger/RouterItemledger.js +38 -0
- package/src/client/components/itemledger/SettingsItemledger.js +4 -4
- package/src/client/components/itemledger/SignUpItemledger.js +6 -4
- package/src/client/components/itemledger/SocketIoItemledger.js +3 -51
- package/src/client/components/itemledger/TranslateItemledger.js +3 -3
- package/src/client/components/underpost/{MenuUnderpost.js → AppShellUnderpost.js} +92 -92
- package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
- package/src/client/components/underpost/CssUnderpost.js +14 -14
- package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +4 -4
- package/src/client/components/underpost/DocumentSearchProvider.js +1 -1
- package/src/client/components/underpost/LabGalleryUnderpost.js +12 -15
- package/src/client/components/underpost/LogInUnderpost.js +9 -7
- package/src/client/components/underpost/LogOutUnderpost.js +8 -6
- package/src/client/components/underpost/RouterUnderpost.js +45 -0
- package/src/client/components/underpost/SettingsUnderpost.js +4 -4
- package/src/client/components/underpost/SignUpUnderpost.js +6 -4
- package/src/client/components/underpost/SocketIoUnderpost.js +3 -51
- package/src/client/components/underpost/TranslateUnderpost.js +4 -4
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +235 -0
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +443 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +417 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +313 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +260 -0
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +241 -0
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +279 -0
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +206 -0
- package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +732 -0
- package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +14 -20
- package/src/client/services/core/core.service.js +35 -55
- package/src/client/services/crypto/crypto.service.js +8 -13
- package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
- package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +99 -0
- package/src/client/services/cyberia-entity/cyberia-entity.management.js +57 -0
- package/src/client/services/cyberia-entity/cyberia-entity.service.js +99 -0
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +194 -0
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +116 -0
- package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +99 -0
- package/src/client/services/cyberia-map/cyberia-map.management.js +193 -0
- package/src/client/services/cyberia-map/cyberia-map.service.js +120 -0
- package/src/client/services/cyberia-quest/cyberia-quest.service.js +99 -0
- package/src/client/services/cyberia-quest-progress/cyberia-quest-progress.service.js +99 -0
- package/src/client/services/default/default.management.js +159 -267
- package/src/client/services/default/default.service.js +10 -16
- package/src/client/services/document/document.service.js +14 -19
- package/src/client/services/file/file.service.js +8 -13
- package/src/client/services/instance/instance.management.js +6 -6
- package/src/client/services/instance/instance.service.js +10 -15
- package/src/client/services/ipfs/ipfs.service.js +14 -40
- package/src/client/services/object-layer/object-layer.management.js +14 -14
- package/src/client/services/object-layer/object-layer.service.js +39 -24
- package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +10 -16
- package/src/client/services/test/test.service.js +8 -13
- package/src/client/services/user/guest.service.js +86 -0
- package/src/client/services/user/user.management.js +6 -6
- package/src/client/services/user/user.service.js +14 -20
- package/src/client/ssr/body/404.js +3 -3
- package/src/client/ssr/body/500.js +3 -3
- package/src/client/ssr/body/CacheControl.js +5 -2
- package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +13 -6
- package/src/client/ssr/head/PwaItemledger.js +197 -60
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
- package/src/client/ssr/offline/Maintenance.js +12 -11
- package/src/client/ssr/offline/NoNetworkConnection.js +3 -3
- package/src/client/ssr/pages/CyberiaServerMetrics.js +1 -1
- package/src/client/ssr/pages/Test.js +2 -2
- package/src/client/sw/core.sw.js +212 -0
- package/src/grpc/cyberia/grpc-server.js +642 -0
- package/src/index.js +24 -1
- package/src/runtime/cyberia-client/Dockerfile +80 -0
- package/src/runtime/cyberia-server/Dockerfile +37 -0
- package/src/runtime/express/Dockerfile +5 -1
- package/src/runtime/express/Express.js +18 -1
- package/src/runtime/lampp/Dockerfile +17 -5
- package/src/runtime/lampp/Lampp.js +27 -4
- package/src/runtime/wp/Dockerfile +62 -0
- package/src/runtime/wp/Wp.js +639 -0
- package/src/server/atlas-sprite-sheet-generator.js +4 -2
- package/src/server/auth.js +24 -1
- package/src/server/backup.js +37 -9
- package/src/server/client-build-docs.js +52 -46
- package/src/server/client-build.js +356 -82
- package/src/server/client-formatted.js +140 -57
- package/src/server/conf.js +29 -13
- package/src/server/cron.js +25 -23
- package/src/server/data-query.js +32 -20
- package/src/server/dns.js +24 -1
- package/src/server/ipfs-client.js +253 -89
- package/src/server/object-layer.js +150 -114
- package/src/server/peer.js +8 -0
- package/src/server/process.js +13 -27
- package/src/server/runtime.js +25 -1
- package/src/server/semantic-layer-generator-floor.js +319 -0
- package/src/server/semantic-layer-generator-resource.js +259 -0
- package/src/server/semantic-layer-generator-skin.js +1164 -0
- package/src/server/semantic-layer-generator.js +211 -542
- package/src/server/shape-generator.js +108 -0
- package/src/server/start.js +19 -5
- package/src/server/valkey.js +141 -235
- package/src/ws/IoInterface.js +1 -10
- package/src/ws/IoServer.js +14 -33
- package/src/ws/core/channels/core.ws.chat.js +65 -20
- package/src/ws/core/channels/core.ws.mailer.js +113 -32
- package/src/ws/core/channels/core.ws.stream.js +90 -31
- package/src/ws/core/core.ws.connection.js +12 -33
- package/src/ws/core/core.ws.emit.js +10 -26
- package/src/ws/core/core.ws.server.js +25 -58
- package/src/ws/default/channels/default.ws.main.js +53 -12
- package/src/ws/default/default.ws.connection.js +26 -13
- package/src/ws/default/default.ws.server.js +30 -12
- package/tsconfig.docs.json +15 -0
- package/typedoc.dd-cyberia.json +29 -0
- package/typedoc.json +29 -0
- package/WHITE-PAPER.md +0 -1540
- package/hardhat/README.md +0 -531
- package/hardhat/WHITE-PAPER.md +0 -1540
- package/jsdoc.dd-cyberia.json +0 -59
- package/jsdoc.json +0 -59
- package/src/api/object-layer/README.md +0 -347
- package/src/client/components/core/ColorPalette.js +0 -5267
- package/src/client/components/core/JoyStick.js +0 -80
- package/src/client/components/cryptokoyn/CommonCryptokoyn.js +0 -29
- package/src/client/components/cryptokoyn/ElementsCryptokoyn.js +0 -38
- package/src/client/components/cryptokoyn/RoutesCryptokoyn.js +0 -39
- package/src/client/components/cyberia-portal/ElementsCyberiaPortal.js +0 -38
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +0 -58
- package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +0 -136
- package/src/client/components/default/ElementsDefault.js +0 -38
- package/src/client/components/default/RoutesDefault.js +0 -49
- package/src/client/components/itemledger/CommonItemledger.js +0 -29
- package/src/client/components/itemledger/ElementsItemledger.js +0 -38
- package/src/client/components/itemledger/RoutesItemledger.js +0 -40
- package/src/client/components/underpost/CommonUnderpost.js +0 -29
- package/src/client/components/underpost/ElementsUnderpost.js +0 -38
- package/src/client/components/underpost/RoutesUnderpost.js +0 -47
- package/src/client/sw/default.sw.js +0 -127
- package/src/client/sw/template.sw.js +0 -84
- package/src/ws/core/management/core.ws.chat.js +0 -8
- package/src/ws/core/management/core.ws.mailer.js +0 -16
- package/src/ws/core/management/core.ws.stream.js +0 -8
- package/src/ws/default/management/default.ws.main.js +0 -8
package/README.md
CHANGED
|
@@ -1,347 +1,417 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://www.cyberiaonline.com/assets/splash/apple-touch-icon-precomposed.png" alt="CYBERIA Network Object Layer Engine
|
|
2
|
+
<img src="https://www.cyberiaonline.com/assets/splash/apple-touch-icon-precomposed.png" alt="CYBERIA Network Object Layer Engine"/>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<div align="center">
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### CYBERIA
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**Network Object Layers**
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
_Stackable Rendering Layers as a Unified Tokenized Reality_
|
|
12
|
+
|
|
13
|
+
[](https://www.npmjs.org/package/cyberia)
|
|
12
14
|
|
|
13
15
|
</div>
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
# Cyberia CLI
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
**Path:** `bin/cyberia.js`
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
---
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
## Overview
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
The Cyberia CLI (`cyberia`) is an extension of the **Underpost CLI** specifically for the Cyberia MMORPG ecosystem. Underpost is the end-to-end bare-metal infrastructure platform for general-purpose applications; `cyberia` extends it with tooling for the game's content pipeline, economy, and MMO engine toolchain. Unrecognized commands are transparently passed through to `underpost` for infrastructure operations.
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
- Produces `frame_matrix` and `map_color` arrays from images.
|
|
27
|
-
- **Procedurally generates object layers** from semantic item-id descriptors with deterministic seeds and temporal coherence.
|
|
28
|
-
- Saves processed objects to the `ObjectLayer` model with top-level references to `ObjectLayerRenderFrames`.
|
|
29
|
-
- Creates separate `ObjectLayerRenderFrames` documents for render data.
|
|
30
|
-
- Links ObjectLayers to AtlasSpriteSheet documents via top-level `atlasSpriteSheetId`.
|
|
31
|
-
- Generates unique UUID v4 seeds (via `crypto.randomUUID()`) for SHA256 hash uniqueness.
|
|
32
|
-
- Generates SHA256 hash using `fast-json-stable-stringify` for deterministic serialization.
|
|
33
|
-
- Reconstructs PNG frames from stored tile data for debugging.
|
|
34
|
-
- Writes static asset PNGs, atlas sprite sheets, and metadata to the conventional directory structure.
|
|
27
|
+
The CLI manages:
|
|
35
28
|
|
|
36
|
-
|
|
29
|
+
- **Object Layer (`ol`)** — import, generate, and manage game item definitions and sprite atlases.
|
|
30
|
+
- **Instance (`instance`)** — export/import/seed game instance data (maps, entities, configs).
|
|
31
|
+
- **Chain (`chain`)** — Hyperledger Besu deployment and ERC-1155 ObjectLayerToken lifecycle.
|
|
32
|
+
- **Run-Workflow (`run-workflow`)** — execute named operational scripts (seed defaults, build manifests).
|
|
37
33
|
|
|
38
|
-
|
|
34
|
+
---
|
|
39
35
|
|
|
40
|
-
|
|
36
|
+
## Global Usage
|
|
41
37
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
```bash
|
|
39
|
+
node bin/cyberia.js <command> [subcommand] [options]
|
|
40
|
+
# or if installed globally:
|
|
41
|
+
cyberia <command> [subcommand] [options]
|
|
42
|
+
```
|
|
45
43
|
|
|
46
|
-
|
|
44
|
+
---
|
|
47
45
|
|
|
48
|
-
|
|
46
|
+
## `cyberia ol` — Object Layer Management
|
|
49
47
|
|
|
50
|
-
|
|
48
|
+
Manages the Object Layer content pipeline: import PNG assets, generate procedural layers, build atlas sprite sheets, and push to IPFS/MongoDB.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
cyberia ol [item-id] [options]
|
|
51
52
|
```
|
|
52
53
|
|
|
53
|
-
###
|
|
54
|
+
### Options
|
|
55
|
+
|
|
56
|
+
| Option | Description |
|
|
57
|
+
| ------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
58
|
+
| `--import` | Import specific item-id(s) (comma-separated) from the PNG asset directory into MongoDB + IPFS |
|
|
59
|
+
| `--import-types [types]` | Batch import by type (e.g. `skin,floor`) or `all` |
|
|
60
|
+
| `--generate` | Generate procedural layers for a semantic item-id (see Semantic Registry below) |
|
|
61
|
+
| `--count <n>` | Shape element count multiplier for `--generate` (default: `3`) |
|
|
62
|
+
| `--seed <seed>` | Deterministic seed string for `--generate` (e.g. `fx-42`) |
|
|
63
|
+
| `--frame-index <n>` | Starting frame index for `--generate` (default: `0`) |
|
|
64
|
+
| `--frame-count <n>` | Number of frames to generate for `--generate` (default: `1`) |
|
|
65
|
+
| `--density <0..1>` | Shape density factor for `--generate` (default: `0.5`) |
|
|
66
|
+
| `--to-atlas-sprite-sheet [dim]` | Convert ObjectLayer frames to a consolidated atlas PNG |
|
|
67
|
+
| `--show-atlas-sprite-sheet` | Display the atlas PNG for the given item-id |
|
|
68
|
+
| `--show-frame [dir_frame]` | View a single frame (e.g. `08_0`; default: `08_0`) |
|
|
69
|
+
| `--drop` | Drop existing data before importing |
|
|
70
|
+
| `--client-public` | With `--drop`: also remove static client asset folders |
|
|
71
|
+
| `--git-clean` | With `--drop`: run clean on the cyberia asset directory |
|
|
72
|
+
| `--dev` | Force development env (uses `.env.development` for localhost IPFS) |
|
|
73
|
+
| `--env-path <path>` | Path to `.env` file (e.g. `./engine-private/conf/dd-cyberia/.env.development`) |
|
|
74
|
+
| `--mongo-host <host>` | MongoDB host override |
|
|
75
|
+
| `--storage-file-path <path>` | Storage filter JSON path override |
|
|
76
|
+
|
|
77
|
+
### Examples
|
|
54
78
|
|
|
55
|
-
|
|
79
|
+
```bash
|
|
80
|
+
# Import a single item from PNG source
|
|
81
|
+
cyberia ol hatchet --import --env-path ./engine-private/conf/dd-cyberia/.env.development
|
|
56
82
|
|
|
57
|
-
|
|
83
|
+
# Import all items of type 'skin' and 'floor'
|
|
84
|
+
cyberia ol --import-types skin,floor
|
|
58
85
|
|
|
59
|
-
|
|
86
|
+
# Import all types
|
|
87
|
+
cyberia ol --import-types all
|
|
60
88
|
|
|
61
|
-
|
|
89
|
+
# Generate a procedural floor tile (desert biome, seed fx-42)
|
|
90
|
+
cyberia ol floor-desert --generate --seed fx-42
|
|
62
91
|
|
|
63
|
-
|
|
92
|
+
# Generate 4 frames of a procedural floor with custom count and density
|
|
93
|
+
cyberia ol floor-grass --generate --frame-count 4 --count 5 --density 0.7
|
|
64
94
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
cyberia ol --import skin,floor
|
|
95
|
+
# Generate a character skin
|
|
96
|
+
cyberia ol skin-dark-001 --generate --seed my-seed
|
|
68
97
|
|
|
69
|
-
#
|
|
70
|
-
cyberia ol --
|
|
98
|
+
# View a specific frame of an item
|
|
99
|
+
cyberia ol hatchet --show-frame 08_0
|
|
100
|
+
|
|
101
|
+
# Rebuild atlas sprite sheet for an item
|
|
102
|
+
cyberia ol hatchet --to-atlas-sprite-sheet
|
|
103
|
+
|
|
104
|
+
# Drop and re-import a single item
|
|
105
|
+
cyberia ol hatchet --drop --import
|
|
71
106
|
```
|
|
72
107
|
|
|
73
|
-
|
|
108
|
+
---
|
|
74
109
|
|
|
75
|
-
|
|
110
|
+
## Semantic Item-ID Registry
|
|
76
111
|
|
|
77
|
-
|
|
78
|
-
# Generate a desert floor tile (single frame, auto seed)
|
|
79
|
-
cyberia ol floor-desert --generate
|
|
112
|
+
The `--generate` flag uses item-id prefixes to look up a procedural descriptor from the semantic registry.
|
|
80
113
|
|
|
81
|
-
|
|
82
|
-
cyberia ol floor-desert --generate --count 3 --seed fx-42 --frame-index 0 --frame-count 3 --density 0.5
|
|
114
|
+
### Floor Prefixes
|
|
83
115
|
|
|
84
|
-
|
|
85
|
-
|
|
116
|
+
| Prefix | Biome | Description |
|
|
117
|
+
| -------------- | ------ | ----------------------------------------------- |
|
|
118
|
+
| `floor-desert` | Desert | Sandy, arid tile with warm yellow/brown palette |
|
|
119
|
+
| `floor-grass` | Grass | Meadow tile with green/earth tones |
|
|
120
|
+
| `floor-water` | Water | Ocean/lake tile with blue/teal palette |
|
|
121
|
+
| `floor-stone` | Stone | Rock/cobble tile with grey palette |
|
|
122
|
+
| `floor-lava` | Lava | Magma tile with red/orange palette |
|
|
86
123
|
|
|
87
|
-
|
|
88
|
-
cyberia ol floor-water --generate --seed ocean-1 --count 5 --density 0.8 --frame-count 4
|
|
124
|
+
### Skin Prefixes
|
|
89
125
|
|
|
90
|
-
|
|
91
|
-
|
|
126
|
+
| Prefix | Description |
|
|
127
|
+
| -------------- | ----------------------------------------------- |
|
|
128
|
+
| `skin-random` | Fully random skin tone and hair |
|
|
129
|
+
| `skin-dark` | Dark skin tones |
|
|
130
|
+
| `skin-light` | Light / pale skin tones |
|
|
131
|
+
| `skin-vivid` | Vivid / exotic hair colours (blue, red, green…) |
|
|
132
|
+
| `skin-natural` | Natural hair colours (brown, blond, grey…) |
|
|
133
|
+
| `skin-shaved` | Shaved / bald head — no hair |
|
|
92
134
|
|
|
93
|
-
|
|
94
|
-
cyberia ol floor-lava --generate --seed magma-3 --frame-count 3 --density 0.7
|
|
95
|
-
```
|
|
135
|
+
### Resource Prefixes
|
|
96
136
|
|
|
97
|
-
|
|
137
|
+
Resource prefixes follow the pattern `resource-{biome}-{shape}`:
|
|
98
138
|
|
|
99
|
-
|
|
|
100
|
-
|
|
101
|
-
|
|
|
102
|
-
|
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
| `--density <f>` | `0.5` | Overall density factor (`0`–`1`). Lower = sparser. |
|
|
139
|
+
| Shape Family | Description |
|
|
140
|
+
| ------------ | -------------------------------------- |
|
|
141
|
+
| `petal` | Parabolic arc shapes — coloured petals |
|
|
142
|
+
| `stone` | Hard, angular mineral shapes |
|
|
143
|
+
| `polygon` | Crystal/geometric faceted shapes |
|
|
144
|
+
| `thread` | Thin, wispy Bézier lines |
|
|
106
145
|
|
|
107
|
-
**
|
|
146
|
+
**Biomes:** `desert`, `grass`, `water`, `stone`, `lava`
|
|
108
147
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
148
|
+
**Full matrix (20 prefixes):**
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
resource-desert-petal resource-grass-petal resource-water-petal
|
|
152
|
+
resource-desert-stone resource-grass-stone resource-water-stone
|
|
153
|
+
resource-desert-polygon resource-grass-polygon resource-water-polygon
|
|
154
|
+
resource-desert-thread resource-grass-thread resource-water-thread
|
|
155
|
+
|
|
156
|
+
resource-stone-petal resource-lava-petal
|
|
157
|
+
resource-stone-stone resource-lava-stone
|
|
158
|
+
resource-stone-polygon resource-lava-polygon
|
|
159
|
+
resource-stone-thread resource-lava-thread
|
|
160
|
+
```
|
|
117
161
|
|
|
118
|
-
|
|
162
|
+
---
|
|
119
163
|
|
|
120
|
-
|
|
164
|
+
## `cyberia instance` — Instance Management
|
|
121
165
|
|
|
122
|
-
|
|
166
|
+
Manages game instance documents (maps, entities, actions, quests, skill config) in MongoDB.
|
|
123
167
|
|
|
168
|
+
```bash
|
|
169
|
+
cyberia instance [instance-code] [options]
|
|
124
170
|
```
|
|
125
|
-
|
|
126
|
-
|
|
171
|
+
|
|
172
|
+
### Options
|
|
173
|
+
|
|
174
|
+
| Option | Description |
|
|
175
|
+
| --------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
176
|
+
| `--export [path]` | Export instance and all related documents to a backup directory |
|
|
177
|
+
| `--import [path]` | Import instance documents from a backup directory (upsert, preserves UUIDs) |
|
|
178
|
+
| `--conf` | With `--export`/`--import`: only process instance and instance-conf documents (skip maps, entities, ObjectLayers) |
|
|
179
|
+
| `--drop` | Drop all documents associated with the instance code |
|
|
180
|
+
| `--env-path <path>` | Path to `.env` file |
|
|
181
|
+
| `--mongo-host <host>` | MongoDB host override |
|
|
182
|
+
| `--dev` | Force development environment |
|
|
183
|
+
|
|
184
|
+
### Examples
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# Export instance to backup
|
|
188
|
+
cyberia instance cyberia-main --export ./backups/cyberia-main
|
|
189
|
+
|
|
190
|
+
# Import instance from backup
|
|
191
|
+
cyberia instance cyberia-main --import ./backups/cyberia-main
|
|
192
|
+
|
|
193
|
+
# Drop instance data
|
|
194
|
+
cyberia instance cyberia-main --drop
|
|
127
195
|
```
|
|
128
196
|
|
|
129
|
-
|
|
197
|
+
---
|
|
130
198
|
|
|
131
|
-
|
|
199
|
+
## `cyberia chain` — Blockchain Lifecycle
|
|
132
200
|
|
|
133
|
-
|
|
201
|
+
Full lifecycle management for the Hyperledger Besu network and `ObjectLayerToken` ERC-1155 contract.
|
|
134
202
|
|
|
135
|
-
|
|
136
|
-
2. Select palette colors deterministically from `paletteHints` with per-element `colorShift`.
|
|
137
|
-
3. For shape layers: pick shape via weighted `preferredShapes`, compute stable base transform `(x, y, scale, rotation)`, apply frame-level smooth noise.
|
|
138
|
-
4. Stamp shapes onto a 24×24 grid via `intCoords` rasterization from the parametric shape generator.
|
|
139
|
-
5. Composite all layers into a final `frame_matrix` + unified `colors` palette.
|
|
203
|
+
### Network Commands
|
|
140
204
|
|
|
141
|
-
|
|
142
|
-
`scaleVariance`, `rotationVariance`, `colorShift`, `jitter`, `noiseLevel`, `detailLevel`, `sparsity` — small, deterministic variations that keep each generation unique but semantically coherent.
|
|
205
|
+
#### `cyberia chain deploy`
|
|
143
206
|
|
|
144
|
-
|
|
207
|
+
Deploy a new Hyperledger Besu IBFT2 network to Kubernetes:
|
|
145
208
|
|
|
146
|
-
|
|
209
|
+
```bash
|
|
210
|
+
cyberia chain deploy [options]
|
|
211
|
+
```
|
|
147
212
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
213
|
+
| Option | Default | Description |
|
|
214
|
+
| ------------------------ | -------------------------- | ----------------------------------------- |
|
|
215
|
+
| `--validators <n>` | `4` | Number of IBFT2 validators |
|
|
216
|
+
| `--chain-id <id>` | `777771` | EVM chain ID |
|
|
217
|
+
| `--block-period <s>` | `5` | IBFT2 block period in seconds |
|
|
218
|
+
| `--epoch-length <n>` | `30000` | IBFT2 epoch length |
|
|
219
|
+
| `--besu-image <img>` | `hyperledger/besu:24.12.1` | Besu container image |
|
|
220
|
+
| `--node-port-rpc <port>` | `30545` | Kubernetes NodePort for JSON-RPC |
|
|
221
|
+
| `--node-port-ws <port>` | `30546` | Kubernetes NodePort for WebSocket |
|
|
222
|
+
| `--namespace <ns>` | `besu` | Kubernetes namespace |
|
|
223
|
+
| `--pull-image` | — | Pull Besu images before deploying |
|
|
224
|
+
| `--skip-generate` | — | Use existing `manifests/besu/` as-is |
|
|
225
|
+
| `--skip-wait` | — | Skip waiting for validators to be Running |
|
|
151
226
|
|
|
152
|
-
####
|
|
227
|
+
#### `cyberia chain remove`
|
|
153
228
|
|
|
154
|
-
|
|
229
|
+
Remove the Besu network from Kubernetes:
|
|
155
230
|
|
|
156
231
|
```bash
|
|
157
|
-
|
|
158
|
-
|
|
232
|
+
cyberia chain remove [--namespace besu] [--clean-keys] [--clean-manifests]
|
|
233
|
+
```
|
|
159
234
|
|
|
160
|
-
|
|
161
|
-
|
|
235
|
+
#### `cyberia chain generate-manifests`
|
|
236
|
+
|
|
237
|
+
Generate Kubernetes manifests without deploying:
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
cyberia chain generate-manifests [options] # same options as deploy
|
|
162
241
|
```
|
|
163
242
|
|
|
164
|
-
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### Contract Commands
|
|
246
|
+
|
|
247
|
+
#### `cyberia chain compile`
|
|
248
|
+
|
|
249
|
+
Compile the Solidity contracts:
|
|
165
250
|
|
|
166
251
|
```bash
|
|
167
|
-
cyberia
|
|
168
|
-
cyberia ol floor-desert --generate --seed fx-99 # variant B (same style, different arrangement)
|
|
252
|
+
cyberia chain compile
|
|
169
253
|
```
|
|
170
254
|
|
|
171
|
-
|
|
255
|
+
#### `cyberia chain deploy-contract`
|
|
172
256
|
|
|
173
|
-
|
|
257
|
+
Deploy `ObjectLayerToken` to a Besu network (mints 10M CKY to the coinbase address):
|
|
174
258
|
|
|
175
259
|
```bash
|
|
176
|
-
|
|
177
|
-
|
|
260
|
+
cyberia chain deploy-contract --network besu-k8s
|
|
261
|
+
```
|
|
178
262
|
|
|
179
|
-
|
|
180
|
-
|
|
263
|
+
| Option | Default | Description |
|
|
264
|
+
| ------------------ | ---------- | ------------------------------------------------------------ |
|
|
265
|
+
| `--network <name>` | `besu-k8s` | Hardhat network name (`besu-ibft2`, `besu-qbft`, `besu-k8s`) |
|
|
181
266
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
267
|
+
#### `cyberia chain test`
|
|
268
|
+
|
|
269
|
+
Run the Hardhat contract test suite:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
cyberia chain test
|
|
185
273
|
```
|
|
186
274
|
|
|
187
|
-
|
|
188
|
-
- `08`: down_idle, none_idle, default_idle
|
|
189
|
-
- `18`: down_walking
|
|
190
|
-
- `02`: up_idle
|
|
191
|
-
- `12`: up_walking
|
|
192
|
-
- `04`: left_idle, up_left_idle, down_left_idle
|
|
193
|
-
- `14`: left_walking, up_left_walking, down_left_walking
|
|
194
|
-
- `06`: right_idle, up_right_idle, down_right_idle
|
|
195
|
-
- `16`: right_walking, up_right_walking, down_right_walking
|
|
275
|
+
---
|
|
196
276
|
|
|
197
|
-
|
|
198
|
-
- Finds the ObjectLayer by item-id
|
|
199
|
-
- Loads the associated ObjectLayerRenderFrames document
|
|
200
|
-
- Reconstructs the PNG from the stored `frame_matrix` and `map_color`
|
|
201
|
-
- Saves it temporarily to disk as `{item-id}_{direction}_{frame}.png`
|
|
202
|
-
- Opens it with Firefox for visual inspection
|
|
277
|
+
### Key Management
|
|
203
278
|
|
|
204
|
-
|
|
279
|
+
#### `cyberia chain key-gen`
|
|
205
280
|
|
|
206
|
-
|
|
281
|
+
Generate a new secp256k1 Ethereum key pair for the coinbase deployer account:
|
|
207
282
|
|
|
208
283
|
```bash
|
|
209
|
-
|
|
210
|
-
|
|
284
|
+
cyberia chain key-gen
|
|
285
|
+
# Output: address + private key + key file written to engine-private/
|
|
286
|
+
```
|
|
211
287
|
|
|
212
|
-
|
|
213
|
-
cyberia ol anon --to-atlas-sprite-sheet 4096
|
|
288
|
+
#### `cyberia chain set-coinbase`
|
|
214
289
|
|
|
290
|
+
Set the active coinbase key used for contract deployment and minting:
|
|
215
291
|
|
|
292
|
+
```bash
|
|
293
|
+
cyberia chain set-coinbase --private-key 0xYOUR_KEY
|
|
294
|
+
cyberia chain set-coinbase --from-file ./engine-private/eth-networks/besu/<address>.key.json
|
|
216
295
|
```
|
|
217
296
|
|
|
218
|
-
|
|
219
|
-
- Finds the ObjectLayer by item-id or MongoDB `_id`
|
|
220
|
-
- Loads the associated ObjectLayerRenderFrames document
|
|
221
|
-
- **Auto-calculates optimal atlas dimensions** based on total frame count (8 directions × all animation modes)
|
|
222
|
-
- Generates a consolidated PNG with all animation frames properly arranged
|
|
223
|
-
- Stores the PNG in the File collection
|
|
224
|
-
- Creates/updates an AtlasSpriteSheet document with frame positions
|
|
225
|
-
- Updates the ObjectLayer with top-level `atlasSpriteSheetId` reference
|
|
226
|
-
- Uses power-of-2 dimensions for GPU efficiency
|
|
297
|
+
---
|
|
227
298
|
|
|
228
|
-
|
|
229
|
-
- **Auto (default)**: Dynamically calculates optimal size based on:
|
|
230
|
-
- Total number of frames across all directions and modes
|
|
231
|
-
- Individual frame dimensions
|
|
232
|
-
- Grid layout to minimize wasted space
|
|
233
|
-
- Power-of-2 optimization (1024, 2048, 4096, etc.)
|
|
234
|
-
- **Manual override**: Specify exact dimension (e.g., `--to-atlas-sprite-sheet 4096`)
|
|
299
|
+
### Token Commands
|
|
235
300
|
|
|
236
|
-
|
|
237
|
-
- **1024x1024**: ~6-10 frames
|
|
238
|
-
- **2048x2048**: ~20-40 frames (typical for character sprites)
|
|
239
|
-
- **4096x4096**: ~80-160 frames (complex animations)
|
|
240
|
-
- **8192x8192**: Maximum, for extreme cases
|
|
301
|
+
#### `cyberia chain register`
|
|
241
302
|
|
|
242
|
-
|
|
303
|
+
Register a single Object Layer item on-chain:
|
|
243
304
|
|
|
244
|
-
|
|
305
|
+
```bash
|
|
306
|
+
cyberia chain register <item-id> [options]
|
|
307
|
+
```
|
|
245
308
|
|
|
246
|
-
|
|
309
|
+
| Option | Default | Description |
|
|
310
|
+
| ---------------------- | ---------- | ----------------------------------------------------- |
|
|
311
|
+
| `--from-db` | — | Resolve canonical IPFS CID from MongoDB (recommended) |
|
|
312
|
+
| `--metadata-cid <cid>` | `""` | Manual CID override (ignored when `--from-db` is set) |
|
|
313
|
+
| `--supply <n>` | `1` | Initial token supply (1 = NFT, >1 = semi-fungible) |
|
|
314
|
+
| `--network <name>` | `besu-k8s` | Hardhat network name |
|
|
315
|
+
| `--env-path <path>` | `./.env` | Path to `.env` file |
|
|
316
|
+
| `--mongo-host <host>` | — | MongoDB host override |
|
|
247
317
|
|
|
248
318
|
```bash
|
|
249
|
-
#
|
|
250
|
-
cyberia
|
|
319
|
+
# Register unique NFT item (non-fungible)
|
|
320
|
+
cyberia chain register legendary-hatchet --from-db --supply 1
|
|
251
321
|
|
|
322
|
+
# Register stackable resource (semi-fungible)
|
|
323
|
+
cyberia chain register gold-ore --from-db --supply 1000000
|
|
252
324
|
```
|
|
253
325
|
|
|
254
|
-
|
|
255
|
-
- Finds the ObjectLayer by item-id
|
|
256
|
-
- Retrieves the associated AtlasSpriteSheet via top-level `atlasSpriteSheetId` or by matching `metadata.itemKey`
|
|
257
|
-
- Saves it temporarily to disk
|
|
258
|
-
- Opens it with Firefox for visual inspection
|
|
259
|
-
- Displays atlas dimensions in the console
|
|
326
|
+
#### `cyberia chain batch-register`
|
|
260
327
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
### Complete Asset Processing Pipeline
|
|
264
|
-
|
|
265
|
-
Process assets from source files through to atlas generation:
|
|
328
|
+
Register multiple items in a single batch transaction:
|
|
266
329
|
|
|
267
330
|
```bash
|
|
268
|
-
|
|
269
|
-
|
|
331
|
+
cyberia chain batch-register --from-db --items '[{"itemId":"wood","supply":500000},{"itemId":"stone","supply":500000}]'
|
|
332
|
+
```
|
|
270
333
|
|
|
271
|
-
|
|
272
|
-
cyberia ol anon --show-frame 08_0
|
|
334
|
+
#### `cyberia chain mint`
|
|
273
335
|
|
|
274
|
-
|
|
275
|
-
cyberia ol anon --to-atlas-sprite-sheet
|
|
336
|
+
Mint additional tokens for an existing token ID:
|
|
276
337
|
|
|
277
|
-
|
|
278
|
-
cyberia
|
|
338
|
+
```bash
|
|
339
|
+
cyberia chain mint --token-id 0 --to 0xABCD...1234 --amount 1000000000000000000000
|
|
340
|
+
cyberia chain mint --token-id <tokenId> --to <address> --amount <uint256>
|
|
279
341
|
```
|
|
280
342
|
|
|
281
|
-
|
|
343
|
+
#### `cyberia chain balance`
|
|
282
344
|
|
|
283
|
-
|
|
345
|
+
Query the token balance of an address:
|
|
284
346
|
|
|
285
347
|
```bash
|
|
286
|
-
|
|
287
|
-
|
|
348
|
+
cyberia chain balance --address 0xABCD...1234 --token-id 0
|
|
349
|
+
```
|
|
288
350
|
|
|
289
|
-
|
|
290
|
-
cyberia ol floor-desert --show-frame 08_0
|
|
351
|
+
#### `cyberia chain transfer`
|
|
291
352
|
|
|
292
|
-
|
|
293
|
-
|
|
353
|
+
Transfer tokens between addresses:
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
cyberia chain transfer --from 0x... --to 0x... --token-id 0 --amount 1000
|
|
294
357
|
```
|
|
295
358
|
|
|
296
|
-
|
|
359
|
+
#### `cyberia chain burn`
|
|
297
360
|
|
|
298
|
-
|
|
361
|
+
Burn tokens from an address:
|
|
299
362
|
|
|
300
363
|
```bash
|
|
301
|
-
cyberia
|
|
302
|
-
cyberia ol floor-grass --generate --seed world-1 --frame-count 3
|
|
303
|
-
cyberia ol floor-water --generate --seed world-1 --frame-count 4
|
|
304
|
-
cyberia ol floor-stone --generate --seed world-1 --frame-count 2
|
|
305
|
-
cyberia ol floor-lava --generate --seed world-1 --frame-count 3
|
|
364
|
+
cyberia chain burn --token-id 0 --amount 500 --address 0x...
|
|
306
365
|
```
|
|
307
366
|
|
|
308
|
-
|
|
367
|
+
#### `cyberia chain status`
|
|
309
368
|
|
|
310
|
-
|
|
311
|
-
# Same item, different seeds — compare visual output
|
|
312
|
-
cyberia ol floor-desert --generate --seed alpha --frame-count 1
|
|
313
|
-
cyberia ol floor-desert --generate --seed beta --frame-count 1
|
|
314
|
-
cyberia ol floor-desert --generate --seed gamma --frame-count 1
|
|
369
|
+
Query chain and contract status:
|
|
315
370
|
|
|
316
|
-
|
|
317
|
-
cyberia
|
|
371
|
+
```bash
|
|
372
|
+
cyberia chain status [--network besu-k8s]
|
|
373
|
+
# Outputs: chain ID, block number, CKY total supply, deployer address, pause state
|
|
318
374
|
```
|
|
319
375
|
|
|
320
|
-
|
|
376
|
+
#### `cyberia chain pause` / `cyberia chain unpause`
|
|
377
|
+
|
|
378
|
+
Emergency transfer freeze / resume (owner only):
|
|
321
379
|
|
|
322
380
|
```bash
|
|
323
|
-
|
|
324
|
-
cyberia
|
|
325
|
-
cyberia ol anon --show-frame 02_0 # up_idle
|
|
326
|
-
cyberia ol anon --show-frame 04_0 # left_idle
|
|
327
|
-
cyberia ol anon --show-frame 06_0 # right_idle
|
|
328
|
-
|
|
329
|
-
# Verify walking animations
|
|
330
|
-
cyberia ol anon --show-frame 18_0 # down_walking
|
|
331
|
-
cyberia ol anon --show-frame 12_0 # up_walking
|
|
332
|
-
cyberia ol anon --show-frame 14_0 # left_walking
|
|
333
|
-
cyberia ol anon --show-frame 16_0 # right_walking
|
|
381
|
+
cyberia chain pause [--network besu-k8s]
|
|
382
|
+
cyberia chain unpause [--network besu-k8s]
|
|
334
383
|
```
|
|
335
384
|
|
|
336
|
-
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## `cyberia run-workflow` — Operational Scripts
|
|
388
|
+
|
|
389
|
+
Pre-built operational workflows for seeding and maintenance:
|
|
390
|
+
|
|
391
|
+
| Subcommand | Description |
|
|
392
|
+
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
393
|
+
| `import-default-items` | Import the canonical default item set (`DefaultCyberiaItems`) into MongoDB + IPFS, then seed skill config and dialogues |
|
|
394
|
+
| `seed-skill-config` | Upsert `DefaultSkillConfig` into `CyberiaInstanceConf` for the target instance |
|
|
395
|
+
| `seed-dialogues` | Upsert `DefaultCyberiaDialogues` (NPC dialogue lines) into the `cyberia-dialogue` collection |
|
|
396
|
+
| `generate-semantic-examples` | Generate procedural examples for skin prefixes (`skin-*`); floor and resource generation is available but commented out by default |
|
|
397
|
+
| `build-manifest` | Build Kubernetes Deployment + Service YAML manifests for mmo-client and mmo-server instances (kubeadm + kind variants) |
|
|
337
398
|
|
|
338
399
|
```bash
|
|
339
|
-
|
|
340
|
-
cyberia
|
|
341
|
-
|
|
342
|
-
# Process individual items
|
|
343
|
-
cyberia ol sword --show-frame 08_0
|
|
344
|
-
cyberia ol sword --to-atlas-sprite-sheet
|
|
345
|
-
cyberia ol shield --show-frame 08_0
|
|
346
|
-
cyberia ol shield --to-atlas-sprite-sheet
|
|
400
|
+
cyberia run-workflow import-default-items --env-path ./engine-private/conf/dd-cyberia/.env.development
|
|
401
|
+
cyberia run-workflow seed-skill-config --env-path ./engine-private/conf/dd-cyberia/.env.development
|
|
402
|
+
cyberia run-workflow build-manifest
|
|
347
403
|
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Environment Variables
|
|
408
|
+
|
|
409
|
+
The CLI respects the following environment variables (typically loaded from an `--env-path` file):
|
|
410
|
+
|
|
411
|
+
| Variable | Description |
|
|
412
|
+
| --------------------- | ---------------------------------------------------------------- |
|
|
413
|
+
| `DEFAULT_DEPLOY_ID` | Engine deployment ID — resolves to `engine-private/conf/{id}/` |
|
|
414
|
+
| `DEFAULT_DEPLOY_HOST` | Deploy host (used to index the conf object) |
|
|
415
|
+
| `DEFAULT_DEPLOY_PATH` | Deploy path (used to index the conf object) |
|
|
416
|
+
| `MONGODB_URI` | MongoDB connection string (loaded from conf if not set directly) |
|
|
417
|
+
| `IPFS_API_URL` | IPFS API URL for pinning (e.g. `http://localhost:5001`) |
|