@underpostnet/cyberia 3.2.80
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/.dockerignore +14 -0
- package/.env.example +144 -0
- package/.github/workflows/cyberia-client.cd.yml +40 -0
- package/.github/workflows/cyberia-server.cd.yml +40 -0
- package/.github/workflows/docker-image.cyberia-client.ci.yml +71 -0
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +70 -0
- package/.github/workflows/docker-image.cyberia-server.ci.yml +71 -0
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +71 -0
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +53 -0
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +53 -0
- package/.github/workflows/engine-cyberia.cd.yml +157 -0
- package/.github/workflows/engine-cyberia.ci.yml +125 -0
- package/.github/workflows/ghpkg.ci.yml +160 -0
- package/.github/workflows/gitlab.ci.yml +20 -0
- package/.github/workflows/hardhat.ci.yml +82 -0
- package/.github/workflows/npmpkg.ci.yml +126 -0
- package/.github/workflows/publish.ci.yml +87 -0
- package/.github/workflows/publish.cyberia.ci.yml +79 -0
- package/.github/workflows/pwa-microservices-template-page.cd.yml +65 -0
- package/.github/workflows/pwa-microservices-template-test.ci.yml +33 -0
- package/.github/workflows/release.cd.yml +46 -0
- package/.nycrc +9 -0
- package/.prettierignore +12 -0
- package/.prettierrc +9 -0
- package/.vscode/extensions.json +10 -0
- package/.vscode/settings.json +26 -0
- package/CHANGELOG.md +2516 -0
- package/CLI-HELP.md +1099 -0
- package/Dockerfile +161 -0
- package/Dockerfile.dev +161 -0
- package/Dockerfile.test +165 -0
- package/LICENSE +21 -0
- package/README.md +259 -0
- package/baremetal/commission-workflows.json +211 -0
- package/baremetal/packer-workflows.json +24 -0
- package/bin/build.js +261 -0
- package/bin/build.template.js +33 -0
- package/bin/cyberia.js +5627 -0
- package/bin/deploy.js +1547 -0
- package/bin/index.js +5627 -0
- package/bump.config.js +27 -0
- package/compose.env +144 -0
- package/conf.js +952 -0
- package/deployment.yaml +418 -0
- package/docker-compose.yml +434 -0
- package/examples/static-page/README.md +150 -0
- package/examples/static-page/ssr-components/CustomPage.js +554 -0
- package/examples/static-page/static-config-example.json +57 -0
- package/hardhat/.env.example +31 -0
- package/hardhat/contracts/ObjectLayerToken.sol +391 -0
- package/hardhat/deployments/.gitkeep +0 -0
- package/hardhat/deployments/hardhat-ObjectLayerToken.json +11 -0
- package/hardhat/hardhat.config.js +136 -0
- package/hardhat/ignition/modules/.gitkeep +0 -0
- package/hardhat/ignition/modules/ObjectLayerToken.js +21 -0
- package/hardhat/networks/besu-object-layer.network.json +138 -0
- package/hardhat/package-lock.json +2871 -0
- package/hardhat/package.json +43 -0
- package/hardhat/scripts/deployObjectLayerToken.js +98 -0
- package/hardhat/test/ObjectLayerToken.js +696 -0
- 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/ipfs/configure-ipfs.sh +13 -0
- package/jsconfig.json +9 -0
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +48 -0
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +48 -0
- package/manifests/deployment/adminer/deployment.yaml +32 -0
- package/manifests/deployment/adminer/kustomization.yaml +7 -0
- package/manifests/deployment/adminer/service.yaml +13 -0
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +418 -0
- package/manifests/deployment/dd-cyberia-development/grpc-service.yaml +17 -0
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +189 -0
- package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +164 -0
- package/manifests/deployment/dd-default-development/deployment.yaml +163 -0
- package/manifests/deployment/dd-default-development/proxy.yaml +46 -0
- package/manifests/deployment/fastapi/backend-deployment.yml +120 -0
- package/manifests/deployment/fastapi/backend-service.yml +19 -0
- package/manifests/deployment/fastapi/frontend-deployment.yml +54 -0
- package/manifests/deployment/fastapi/frontend-service.yml +15 -0
- package/manifests/deployment/fastapi/initial_data.sh +8 -0
- package/manifests/deployment/kafka/deployment.yaml +67 -0
- package/manifests/deployment/mongo-express/deployment.yaml +62 -0
- package/manifests/deployment/phpmyadmin/deployment.yaml +54 -0
- package/manifests/deployment/playwright/deployment.yaml +52 -0
- package/manifests/deployment/spark/spark-pi-py.yaml +20 -0
- package/manifests/deployment/tensorflow/tf-gpu-test.yaml +63 -0
- package/manifests/envoy-service-nodeport.yaml +22 -0
- package/manifests/grafana/deployment.yaml +64 -0
- package/manifests/grafana/kustomization.yaml +7 -0
- package/manifests/grafana/pvc.yaml +12 -0
- package/manifests/grafana/service.yaml +14 -0
- package/manifests/grafana/storage-class.yaml +9 -0
- package/manifests/ipfs/configmap.yaml +64 -0
- package/manifests/ipfs/headless-service.yaml +35 -0
- package/manifests/ipfs/kustomization.yaml +8 -0
- package/manifests/ipfs/statefulset.yaml +149 -0
- package/manifests/ipfs/storage-class.yaml +9 -0
- package/manifests/kind-config-dev.yaml +20 -0
- package/manifests/kind-config.yaml +12 -0
- package/manifests/kubeadm-calico-config.yaml +14 -0
- package/manifests/letsencrypt-prod.yaml +14 -0
- package/manifests/lxd/lxd-admin-profile.yaml +26 -0
- package/manifests/lxd/lxd-preseed.yaml +30 -0
- package/manifests/mariadb/kustomization.yaml +9 -0
- package/manifests/mariadb/pv.yaml +12 -0
- package/manifests/mariadb/pvc.yaml +10 -0
- package/manifests/mariadb/service.yaml +10 -0
- package/manifests/mariadb/statefulset.yaml +56 -0
- package/manifests/mariadb/storage-class.yaml +10 -0
- package/manifests/mongodb/headless-service.yaml +10 -0
- package/manifests/mongodb/kustomization.yaml +11 -0
- package/manifests/mongodb/pv-pvc.yaml +59 -0
- package/manifests/mongodb/statefulset.yaml +113 -0
- package/manifests/mongodb/storage-class.yaml +9 -0
- package/manifests/mongodb-4.4/headless-service.yaml +10 -0
- package/manifests/mongodb-4.4/kustomization.yaml +9 -0
- package/manifests/mongodb-4.4/mongodb-nodeport.yaml +17 -0
- package/manifests/mongodb-4.4/pv-pvc.yaml +19 -0
- package/manifests/mongodb-4.4/service-deployment.yaml +61 -0
- package/manifests/mongodb-4.4/statefulset.yaml +79 -0
- package/manifests/mongodb-4.4/storage-class.yaml +9 -0
- package/manifests/mysql/kustomization.yaml +7 -0
- package/manifests/mysql/pv-pvc.yaml +27 -0
- package/manifests/mysql/statefulset.yaml +55 -0
- package/manifests/postgresql/configmap.yaml +9 -0
- package/manifests/postgresql/kustomization.yaml +10 -0
- package/manifests/postgresql/pv.yaml +15 -0
- package/manifests/postgresql/pvc.yaml +13 -0
- package/manifests/postgresql/service.yaml +10 -0
- package/manifests/postgresql/statefulset.yaml +37 -0
- package/manifests/prometheus/deployment.yaml +82 -0
- package/manifests/pv-pvc-dd.yaml +34 -0
- package/manifests/valkey/kustomization.yaml +7 -0
- package/manifests/valkey/service.yaml +10 -0
- package/manifests/valkey/statefulset.yaml +37 -0
- package/manifests/valkey/valkey-nodeport.yaml +17 -0
- package/mongodb/entrypoint.sh +76 -0
- package/nginx.conf +128 -0
- package/nodemon.json +6 -0
- package/package.json +101 -0
- package/packer/images/Rocky9Amd64/Makefile +62 -0
- package/packer/images/Rocky9Amd64/QUICKSTART.md +113 -0
- package/packer/images/Rocky9Amd64/README.md +122 -0
- package/packer/images/Rocky9Amd64/http/rocky9.ks.pkrtpl.hcl +114 -0
- package/packer/images/Rocky9Amd64/rocky9.pkr.hcl +164 -0
- package/packer/images/Rocky9Arm64/Makefile +69 -0
- package/packer/images/Rocky9Arm64/README.md +122 -0
- package/packer/images/Rocky9Arm64/http/rocky9.ks.pkrtpl.hcl +114 -0
- package/packer/images/Rocky9Arm64/rocky9.pkr.hcl +171 -0
- package/packer/scripts/fuse-nbd +64 -0
- package/packer/scripts/fuse-tar-root +63 -0
- package/proxy.yaml +189 -0
- package/pv-pvc.yaml +164 -0
- package/scripts/device-scan.sh +65 -0
- package/scripts/disk-clean.sh +182 -0
- package/scripts/disk-devices.sh +13 -0
- package/scripts/gen-fqdns.sh +14 -0
- package/scripts/gpu-diag.sh +19 -0
- package/scripts/ip-info.sh +118 -0
- package/scripts/ipxe-setup.sh +200 -0
- package/scripts/k3s-node-setup.sh +124 -0
- package/scripts/kubeadm-node-setup.sh +317 -0
- package/scripts/link-local-underpost-cli.sh +6 -0
- package/scripts/lxd-vm-setup.sh +208 -0
- package/scripts/maas-nat-firewalld.sh +145 -0
- package/scripts/maas-setup.sh +135 -0
- package/scripts/maas-upload-boot-resource.sh +183 -0
- package/scripts/nat-iptables.sh +111 -0
- package/scripts/nvim.sh +91 -0
- package/scripts/packer-init-vars-file.sh +40 -0
- package/scripts/packer-setup.sh +289 -0
- package/scripts/ports-ls.sh +33 -0
- package/scripts/quick-tftp.sh +19 -0
- package/scripts/rhel-grpc-setup.sh +56 -0
- package/scripts/rocky-kickstart.sh +986 -0
- package/scripts/rocky-pwa.sh +200 -0
- package/scripts/rocky-setup.sh +106 -0
- package/scripts/rpmfusion-ffmpeg-setup.sh +32 -0
- package/scripts/ssl.sh +170 -0
- package/scripts/test-monitor.sh +248 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +30 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +155 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +39 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +382 -0
- package/src/api/core/core.controller.js +8 -0
- package/src/api/core/core.model.js +11 -0
- package/src/api/core/core.router.js +23 -0
- package/src/api/core/core.service.js +30 -0
- package/src/api/crypto/crypto.controller.js +10 -0
- package/src/api/crypto/crypto.model.js +23 -0
- package/src/api/crypto/crypto.router.js +23 -0
- package/src/api/crypto/crypto.service.js +64 -0
- package/src/api/cyberia-action/cyberia-action.controller.js +8 -0
- package/src/api/cyberia-action/cyberia-action.model.js +79 -0
- package/src/api/cyberia-action/cyberia-action.router.js +21 -0
- package/src/api/cyberia-action/cyberia-action.service.js +58 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +27 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +100 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +70 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +152 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +8 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +20 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +57 -0
- package/src/api/cyberia-entity/cyberia-entity.controller.js +6 -0
- package/src/api/cyberia-entity/cyberia-entity.model.js +25 -0
- package/src/api/cyberia-entity/cyberia-entity.router.js +17 -0
- package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +6 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.model.js +67 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.router.js +17 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.service.js +46 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +337 -0
- package/src/api/cyberia-instance/cyberia-instance-boot.service.js +57 -0
- package/src/api/cyberia-instance/cyberia-instance-map.service.js +583 -0
- package/src/api/cyberia-instance/cyberia-instance.controller.js +42 -0
- package/src/api/cyberia-instance/cyberia-instance.model.js +117 -0
- package/src/api/cyberia-instance/cyberia-instance.router.js +75 -0
- package/src/api/cyberia-instance/cyberia-instance.service.js +190 -0
- package/src/api/cyberia-instance/cyberia-portal-connector.js +260 -0
- package/src/api/cyberia-instance/cyberia-world-generator.js +618 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +6 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +200 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +17 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +46 -0
- package/src/api/cyberia-map/cyberia-map.controller.js +6 -0
- package/src/api/cyberia-map/cyberia-map.model.js +33 -0
- package/src/api/cyberia-map/cyberia-map.router.js +19 -0
- package/src/api/cyberia-map/cyberia-map.service.js +76 -0
- package/src/api/cyberia-quest/cyberia-quest.controller.js +9 -0
- package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +26 -0
- package/src/api/cyberia-quest/cyberia-quest.service.js +97 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +6 -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 +21 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
- package/src/api/cyberia-saga/cyberia-saga.controller.js +6 -0
- package/src/api/cyberia-saga/cyberia-saga.model.js +59 -0
- package/src/api/cyberia-saga/cyberia-saga.router.js +17 -0
- package/src/api/cyberia-saga/cyberia-saga.service.js +42 -0
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +1076 -0
- package/src/api/cyberia-skill/cyberia-skill.controller.js +6 -0
- package/src/api/cyberia-skill/cyberia-skill.model.js +50 -0
- package/src/api/cyberia-skill/cyberia-skill.router.js +17 -0
- package/src/api/cyberia-skill/cyberia-skill.service.js +42 -0
- package/src/api/default/default.controller.js +6 -0
- package/src/api/default/default.model.js +20 -0
- package/src/api/default/default.router.js +21 -0
- package/src/api/default/default.service.js +42 -0
- package/src/api/document/document.controller.js +9 -0
- package/src/api/document/document.model.js +95 -0
- package/src/api/document/document.router.js +32 -0
- package/src/api/document/document.service.js +633 -0
- package/src/api/file/file.controller.js +15 -0
- package/src/api/file/file.model.js +127 -0
- package/src/api/file/file.ref.json +39 -0
- package/src/api/file/file.router.js +36 -0
- package/src/api/file/file.service.js +499 -0
- package/src/api/instance/instance.controller.js +8 -0
- package/src/api/instance/instance.model.js +34 -0
- package/src/api/instance/instance.router.js +27 -0
- package/src/api/instance/instance.service.js +75 -0
- package/src/api/ipfs/ipfs.controller.js +8 -0
- package/src/api/ipfs/ipfs.model.js +77 -0
- package/src/api/ipfs/ipfs.router.js +26 -0
- package/src/api/ipfs/ipfs.service.js +145 -0
- package/src/api/object-layer/object-layer.controller.js +18 -0
- package/src/api/object-layer/object-layer.model.js +200 -0
- package/src/api/object-layer/object-layer.router.js +729 -0
- package/src/api/object-layer/object-layer.service.js +894 -0
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +6 -0
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +93 -0
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +17 -0
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +46 -0
- package/src/api/test/test.controller.js +14 -0
- package/src/api/test/test.model.js +14 -0
- package/src/api/test/test.router.js +23 -0
- package/src/api/test/test.service.js +35 -0
- package/src/api/types.js +24 -0
- package/src/api/user/guest.service.js +100 -0
- package/src/api/user/postman_collection.json +216 -0
- package/src/api/user/user.build.js +16 -0
- package/src/api/user/user.controller.js +35 -0
- package/src/api/user/user.model.js +142 -0
- package/src/api/user/user.router.js +367 -0
- package/src/api/user/user.service.js +582 -0
- package/src/api.js +23 -0
- package/src/cli/baremetal.js +3947 -0
- package/src/cli/cloud-init.js +673 -0
- package/src/cli/cluster.js +1395 -0
- package/src/cli/db.js +1533 -0
- package/src/cli/deploy.js +1542 -0
- package/src/cli/docker-compose.js +802 -0
- package/src/cli/env.js +177 -0
- package/src/cli/fs.js +380 -0
- package/src/cli/image.js +389 -0
- package/src/cli/index.js +1059 -0
- package/src/cli/ipfs.js +182 -0
- package/src/cli/kickstart.js +271 -0
- package/src/cli/kubectl.js +214 -0
- package/src/cli/lxd.js +1232 -0
- package/src/cli/monitor.js +659 -0
- package/src/cli/release.js +595 -0
- package/src/cli/repository.js +1969 -0
- package/src/cli/run.js +3326 -0
- package/src/cli/secrets.js +151 -0
- package/src/cli/ssh.js +975 -0
- package/src/cli/static.js +653 -0
- package/src/cli/system.js +332 -0
- package/src/cli/test.js +176 -0
- package/src/client/Cryptokoyn.index.js +30 -0
- package/src/client/CyberiaPortal.index.js +31 -0
- package/src/client/Default.index.js +77 -0
- package/src/client/Itemledger.index.js +35 -0
- package/src/client/Underpost.index.js +31 -0
- package/src/client/components/core/404.js +20 -0
- package/src/client/components/core/500.js +20 -0
- package/src/client/components/core/Account.js +630 -0
- package/src/client/components/core/AgGrid.js +238 -0
- package/src/client/components/core/Alert.js +76 -0
- package/src/client/components/core/AppStore.js +69 -0
- package/src/client/components/core/Auth.js +353 -0
- package/src/client/components/core/Badge.js +26 -0
- package/src/client/components/core/Blockchain.js +41 -0
- package/src/client/components/core/Blog.js +9 -0
- package/src/client/components/core/BtnIcon.js +109 -0
- package/src/client/components/core/CalendarCore.js +437 -0
- package/src/client/components/core/Chat.js +62 -0
- package/src/client/components/core/ClientEvents.js +163 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/CommonJs.js +1014 -0
- package/src/client/components/core/Content.js +349 -0
- package/src/client/components/core/Css.js +1134 -0
- package/src/client/components/core/CssCore.js +881 -0
- package/src/client/components/core/D3Chart.js +44 -0
- package/src/client/components/core/Docs.js +478 -0
- package/src/client/components/core/DropDown.js +321 -0
- package/src/client/components/core/EventBus.js +96 -0
- package/src/client/components/core/EventsUI.js +130 -0
- package/src/client/components/core/FileExplorer.js +1406 -0
- package/src/client/components/core/FullScreen.js +201 -0
- package/src/client/components/core/Input.js +537 -0
- package/src/client/components/core/Keyboard.js +80 -0
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +152 -0
- package/src/client/components/core/LogIn.js +212 -0
- package/src/client/components/core/LogOut.js +72 -0
- package/src/client/components/core/Logger.js +22 -0
- package/src/client/components/core/Modal.js +2956 -0
- package/src/client/components/core/NotificationManager.js +80 -0
- package/src/client/components/core/Pagination.js +252 -0
- package/src/client/components/core/Panel.js +1308 -0
- package/src/client/components/core/PanelForm.js +915 -0
- package/src/client/components/core/Polyhedron.js +947 -0
- package/src/client/components/core/PublicProfile.js +895 -0
- package/src/client/components/core/Recover.js +211 -0
- package/src/client/components/core/Responsive.js +146 -0
- package/src/client/components/core/RichText.js +33 -0
- package/src/client/components/core/Router.js +523 -0
- package/src/client/components/core/Scroll.js +76 -0
- package/src/client/components/core/SearchBox.js +1007 -0
- package/src/client/components/core/SignUp.js +153 -0
- package/src/client/components/core/SocketIo.js +163 -0
- package/src/client/components/core/SocketIoHandler.js +75 -0
- package/src/client/components/core/Stream.js +161 -0
- package/src/client/components/core/ToggleSwitch.js +89 -0
- package/src/client/components/core/ToolTip.js +78 -0
- package/src/client/components/core/Translate.js +694 -0
- package/src/client/components/core/Validator.js +140 -0
- package/src/client/components/core/VanillaJs.js +485 -0
- package/src/client/components/core/Wallet.js +95 -0
- package/src/client/components/core/WebComponent.js +44 -0
- package/src/client/components/core/Webhook.js +58 -0
- package/src/client/components/core/Worker.js +313 -0
- package/src/client/components/core/windowGetDimensions.js +269 -0
- package/src/client/components/cryptokoyn/AppShellCryptokoyn.js +352 -0
- package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +212 -0
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +16 -0
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +12 -0
- package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +16 -0
- package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +11 -0
- package/src/client/components/cryptokoyn/SocketIoCryptokoyn.js +6 -0
- package/src/client/components/cyberia/ActionEngineCyberia.js +1867 -0
- package/src/client/components/cyberia/EntityEngineCyberia.js +585 -0
- package/src/client/components/cyberia/InstanceEngineCyberia.js +1088 -0
- package/src/client/components/cyberia/InstanceSelectionView.js +900 -0
- package/src/client/components/cyberia/MapEngineCyberia.js +1976 -0
- package/src/client/components/cyberia/ObjectLayerEngine.js +1540 -0
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +2420 -0
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +1522 -0
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +528 -0
- package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +772 -0
- package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +254 -0
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +21 -0
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +16 -0
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +518 -0
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +72 -0
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +16 -0
- package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +13 -0
- package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +6 -0
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +48 -0
- package/src/client/components/default/AppShellDefault.js +765 -0
- package/src/client/components/default/AppStoreDefault.js +5 -0
- package/src/client/components/default/CommonDefault.js +29 -0
- package/src/client/components/default/CssDefault.js +27 -0
- package/src/client/components/default/LogInDefault.js +16 -0
- package/src/client/components/default/LogOutDefault.js +12 -0
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +16 -0
- package/src/client/components/default/SignUpDefault.js +11 -0
- package/src/client/components/default/SocketIoDefault.js +6 -0
- package/src/client/components/default/TranslateDefault.js +7 -0
- package/src/client/components/itemledger/AppShellItemledger.js +353 -0
- package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
- package/src/client/components/itemledger/CssItemledger.js +212 -0
- package/src/client/components/itemledger/LogInItemledger.js +17 -0
- package/src/client/components/itemledger/LogOutItemledger.js +12 -0
- package/src/client/components/itemledger/RouterItemledger.js +38 -0
- package/src/client/components/itemledger/SettingsItemledger.js +16 -0
- package/src/client/components/itemledger/SignUpItemledger.js +11 -0
- package/src/client/components/itemledger/SocketIoItemledger.js +6 -0
- package/src/client/components/itemledger/TranslateItemledger.js +7 -0
- package/src/client/components/underpost/AppShellUnderpost.js +691 -0
- package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
- package/src/client/components/underpost/CssUnderpost.js +281 -0
- package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +879 -0
- package/src/client/components/underpost/DocumentSearchProvider.js +448 -0
- package/src/client/components/underpost/LabGalleryUnderpost.js +79 -0
- package/src/client/components/underpost/LogInUnderpost.js +25 -0
- package/src/client/components/underpost/LogOutUnderpost.js +17 -0
- package/src/client/components/underpost/RouterUnderpost.js +45 -0
- package/src/client/components/underpost/SettingsUnderpost.js +16 -0
- package/src/client/components/underpost/SignUpUnderpost.js +11 -0
- package/src/client/components/underpost/SocketIoUnderpost.js +6 -0
- package/src/client/components/underpost/TranslateUnderpost.js +10 -0
- package/src/client/public/cryptokoyn/assets/banner/koyn-social.png +0 -0
- package/src/client/public/cryptokoyn/assets/logo/base-icon.png +0 -0
- package/src/client/public/cryptokoyn/assets/logo/cryptokoyn.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-144x144.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-192x192.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-256x256.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-36x36.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-48x48.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-72x72.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-96x96.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-114x114-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-114x114.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-120x120-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-120x120.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-144x144-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-144x144.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-152x152-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-152x152.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-180x180-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-180x180.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-57x57-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-57x57.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-60x60-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-60x60.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-72x72-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-72x72.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-76x76-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-76x76.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/favicon-16x16.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/favicon-32x32.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-144x144.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-150x150.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-310x150.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-310x310.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-70x70.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/safari-pinned-tab.svg +42 -0
- package/src/client/public/cryptokoyn/browserconfig.xml +12 -0
- package/src/client/public/cryptokoyn/favicon.ico +0 -0
- package/src/client/public/cryptokoyn/microdata.json +85 -0
- package/src/client/public/cryptokoyn/site.webmanifest +57 -0
- package/src/client/public/cryptokoyn/sitemap +148 -0
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +307 -0
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +309 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +204 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +341 -0
- package/src/client/public/cyberia-docs/CYBERIA-LORE.md +84 -0
- package/src/client/public/cyberia-docs/CYBERIA-SAGA.md +394 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +294 -0
- package/src/client/public/cyberia-docs/CYBERIA.md +259 -0
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +242 -0
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +309 -0
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +228 -0
- package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
- package/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md +106 -0
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +740 -0
- package/src/client/public/default/android-chrome-144x144.png +0 -0
- package/src/client/public/default/android-chrome-192x192.png +0 -0
- package/src/client/public/default/android-chrome-256x256.png +0 -0
- package/src/client/public/default/android-chrome-36x36.png +0 -0
- package/src/client/public/default/android-chrome-384x384.png +0 -0
- package/src/client/public/default/android-chrome-48x48.png +0 -0
- package/src/client/public/default/android-chrome-512x512.png +0 -0
- package/src/client/public/default/android-chrome-72x72.png +0 -0
- package/src/client/public/default/android-chrome-96x96.png +0 -0
- package/src/client/public/default/apple-touch-icon-1024x1024.png +0 -0
- package/src/client/public/default/apple-touch-icon-114x114-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-114x114.png +0 -0
- package/src/client/public/default/apple-touch-icon-120x120-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-120x120.png +0 -0
- package/src/client/public/default/apple-touch-icon-144x144-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-144x144.png +0 -0
- package/src/client/public/default/apple-touch-icon-152x152-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-152x152.png +0 -0
- package/src/client/public/default/apple-touch-icon-167x167.png +0 -0
- package/src/client/public/default/apple-touch-icon-180x180-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-180x180.png +0 -0
- package/src/client/public/default/apple-touch-icon-57x57-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-57x57.png +0 -0
- package/src/client/public/default/apple-touch-icon-60x60-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-60x60.png +0 -0
- package/src/client/public/default/apple-touch-icon-72x72-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-72x72.png +0 -0
- package/src/client/public/default/apple-touch-icon-76x76-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-76x76.png +0 -0
- package/src/client/public/default/apple-touch-icon-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1125x2436.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1136x640.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1170x2532.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1179x2556.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1242x2208.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1242x2688.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1284x2778.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1290x2796.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1334x750.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1488x2266.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1536x2048.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1620x2160.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1640x2160.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1668x2224.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1668x2388.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1792x828.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2048x1536.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2048x2732.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2160x1620.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2160x1640.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2208x1242.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2224x1668.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2266x1488.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2388x1668.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2436x1125.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2532x1170.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2556x1179.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2688x1242.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2732x2048.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2778x1284.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2796x1290.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-640x1136.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-750x1334.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-828x1792.png +0 -0
- package/src/client/public/default/assets/background/dark.jpg +0 -0
- package/src/client/public/default/assets/background/dark.svg +557 -0
- package/src/client/public/default/assets/background/white.jpg +0 -0
- package/src/client/public/default/assets/background/white0-min.jpg +0 -0
- package/src/client/public/default/assets/background/white0.jpg +0 -0
- package/src/client/public/default/assets/logo/base-icon.png +0 -0
- package/src/client/public/default/assets/logo/underpost.gif +0 -0
- package/src/client/public/default/assets/mailer/api-user-check.png +0 -0
- package/src/client/public/default/assets/mailer/api-user-default-avatar.png +0 -0
- package/src/client/public/default/assets/mailer/api-user-invalid-token.png +0 -0
- package/src/client/public/default/assets/mailer/api-user-recover.png +0 -0
- package/src/client/public/default/browserconfig.xml +12 -0
- package/src/client/public/default/favicon-16x16.png +0 -0
- package/src/client/public/default/favicon-32x32.png +0 -0
- package/src/client/public/default/favicon-48x48.png +0 -0
- package/src/client/public/default/favicon.ico +0 -0
- package/src/client/public/default/manifest.webmanifest +69 -0
- package/src/client/public/default/mstile-144x144.png +0 -0
- package/src/client/public/default/mstile-150x150.png +0 -0
- package/src/client/public/default/mstile-310x150.png +0 -0
- package/src/client/public/default/mstile-310x310.png +0 -0
- package/src/client/public/default/mstile-70x70.png +0 -0
- package/src/client/public/default/safari-pinned-tab.svg +24 -0
- package/src/client/public/default/site.webmanifest +69 -0
- package/src/client/public/default/sitemap +148 -0
- package/src/client/public/default/yandex-browser-50x50.png +0 -0
- package/src/client/public/default/yandex-browser-manifest.json +9 -0
- package/src/client/public/doc/favicon.ico +0 -0
- package/src/client/public/doc/sitemap +148 -0
- package/src/client/public/itemledger/android-chrome-144x144.png +0 -0
- package/src/client/public/itemledger/android-chrome-192x192.png +0 -0
- package/src/client/public/itemledger/android-chrome-256x256.png +0 -0
- package/src/client/public/itemledger/android-chrome-36x36.png +0 -0
- package/src/client/public/itemledger/android-chrome-384x384.png +0 -0
- package/src/client/public/itemledger/android-chrome-48x48.png +0 -0
- package/src/client/public/itemledger/android-chrome-512x512.png +0 -0
- package/src/client/public/itemledger/android-chrome-72x72.png +0 -0
- package/src/client/public/itemledger/android-chrome-96x96.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-1024x1024.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-114x114.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-120x120.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-144x144.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-152x152.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-167x167.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-180x180.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-57x57.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-60x60.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-72x72.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-76x76.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-precomposed.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1125x2436.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1136x640.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1170x2532.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1179x2556.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1242x2208.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1242x2688.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1284x2778.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1290x2796.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1334x750.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1488x2266.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1536x2048.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1620x2160.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1640x2160.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1668x2224.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1668x2388.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1792x828.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2048x1536.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2048x2732.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2160x1620.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2160x1640.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2208x1242.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2224x1668.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2266x1488.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2388x1668.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2436x1125.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2532x1170.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2556x1179.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2688x1242.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2732x2048.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2778x1284.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2796x1290.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-640x1136.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-750x1334.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-828x1792.png +0 -0
- package/src/client/public/itemledger/assets/logo/base-icon.png +0 -0
- package/src/client/public/itemledger/browserconfig.xml +12 -0
- package/src/client/public/itemledger/favicon-16x16.png +0 -0
- package/src/client/public/itemledger/favicon-32x32.png +0 -0
- package/src/client/public/itemledger/favicon-48x48.png +0 -0
- package/src/client/public/itemledger/favicon.ico +0 -0
- package/src/client/public/itemledger/manifest.webmanifest +69 -0
- package/src/client/public/itemledger/microdata.json +71 -0
- package/src/client/public/itemledger/mstile-144x144.png +0 -0
- package/src/client/public/itemledger/mstile-150x150.png +0 -0
- package/src/client/public/itemledger/mstile-310x150.png +0 -0
- package/src/client/public/itemledger/mstile-310x310.png +0 -0
- package/src/client/public/itemledger/mstile-70x70.png +0 -0
- package/src/client/public/itemledger/sitemap +148 -0
- package/src/client/public/itemledger/yandex-browser-50x50.png +0 -0
- package/src/client/public/itemledger/yandex-browser-manifest.json +9 -0
- package/src/client/public/test/favicon.ico +0 -0
- package/src/client/public/test/sitemap +148 -0
- package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +137 -0
- package/src/client/services/core/core.service.js +309 -0
- package/src/client/services/crypto/crypto.service.js +68 -0
- package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
- package/src/client/services/cyberia-client-hints/cyberia-client-hints.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-entity-type-default/cyberia-entity-type-default.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 +137 -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/cyberia-saga/cyberia-saga.service.js +99 -0
- package/src/client/services/cyberia-skill/cyberia-skill.service.js +99 -0
- package/src/client/services/default/default.management.js +1015 -0
- package/src/client/services/default/default.service.js +99 -0
- package/src/client/services/document/document.service.js +134 -0
- package/src/client/services/file/file.service.js +94 -0
- package/src/client/services/instance/instance.management.js +78 -0
- package/src/client/services/instance/instance.service.js +107 -0
- package/src/client/services/ipfs/ipfs.service.js +118 -0
- package/src/client/services/object-layer/object-layer.management.js +414 -0
- package/src/client/services/object-layer/object-layer.service.js +208 -0
- package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +99 -0
- package/src/client/services/test/test.service.js +68 -0
- package/src/client/services/user/guest.service.js +86 -0
- package/src/client/services/user/user.management.js +51 -0
- package/src/client/services/user/user.service.js +106 -0
- package/src/client/ssr/RootDocument.js +237 -0
- package/src/client/ssr/body/404.js +77 -0
- package/src/client/ssr/body/500.js +76 -0
- package/src/client/ssr/body/CacheControl.js +117 -0
- package/src/client/ssr/body/CyberiaDefaultSplashScreen.js +97 -0
- package/src/client/ssr/body/DefaultSplashScreen.js +97 -0
- package/src/client/ssr/body/SwaggerDarkMode.js +285 -0
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +90 -0
- package/src/client/ssr/head/CryptokoynScripts.js +4 -0
- package/src/client/ssr/head/Css.js +241 -0
- package/src/client/ssr/head/CyberiaPortalScripts.js +6 -0
- package/src/client/ssr/head/DefaultScripts.js +6 -0
- package/src/client/ssr/head/ItemledgerScripts.js +4 -0
- package/src/client/ssr/head/Microdata.js +11 -0
- package/src/client/ssr/head/Production.js +1 -0
- package/src/client/ssr/head/Pwa.js +146 -0
- package/src/client/ssr/head/PwaItemledger.js +197 -0
- package/src/client/ssr/head/Seo.js +15 -0
- package/src/client/ssr/head/UnderpostScripts.js +6 -0
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +20 -0
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +16 -0
- package/src/client/ssr/views/Cyberia404.js +328 -0
- package/src/client/ssr/views/CyberiaServerMetrics.js +1070 -0
- package/src/client/ssr/views/Maintenance.js +64 -0
- package/src/client/ssr/views/NoNetworkConnection.js +68 -0
- package/src/client/ssr/views/Test.js +199 -0
- package/src/client/sw/core.sw.js +274 -0
- package/src/client-builder/client-build-docs.js +493 -0
- package/src/client-builder/client-build-live.js +100 -0
- package/src/client-builder/client-build.js +1092 -0
- package/src/client-builder/client-dev-server.js +88 -0
- package/src/client-builder/client-formatted.js +170 -0
- package/src/client-builder/client-icons.js +108 -0
- package/src/client-builder/ssr.js +124 -0
- package/src/client.build.js +17 -0
- package/src/client.dev.js +21 -0
- package/src/db/DataBaseProvider.js +213 -0
- package/src/db/mariadb/MariaDB.js +72 -0
- package/src/db/mongo/MongoBootstrap.js +657 -0
- package/src/db/mongo/MongooseDB.js +199 -0
- package/src/grpc/cyberia/grpc-server.js +162 -0
- package/src/index.js +357 -0
- package/src/mailer/EmailRender.js +116 -0
- package/src/mailer/MailerProvider.js +213 -0
- package/src/projects/cyberia/atlas-sprite-sheet-generator.js +413 -0
- package/src/projects/cyberia/besu-genesis-generator.js +1630 -0
- package/src/projects/cyberia/catalog-cyberia.js +90 -0
- package/src/projects/cyberia/gemini-client.js +175 -0
- package/src/projects/cyberia/generate-saga.js +2137 -0
- package/src/projects/cyberia/hot-reload-trigger.js +163 -0
- package/src/projects/cyberia/instance-data.js +719 -0
- package/src/projects/cyberia/ipfs-client.js +599 -0
- package/src/projects/cyberia/map-preview-generator.js +304 -0
- package/src/projects/cyberia/object-layer.js +978 -0
- package/src/projects/cyberia/semantic-layer-generator-floor.js +319 -0
- package/src/projects/cyberia/semantic-layer-generator-resource.js +259 -0
- package/src/projects/cyberia/semantic-layer-generator-skin.js +1164 -0
- package/src/projects/cyberia/semantic-layer-generator.js +753 -0
- package/src/projects/cyberia/shape-generator.js +1060 -0
- package/src/projects/underpost/catalog-underpost.js +60 -0
- package/src/proxy.js +19 -0
- package/src/runtime/cyberia-client/Dockerfile +49 -0
- package/src/runtime/cyberia-client/Dockerfile.dev +75 -0
- package/src/runtime/cyberia-server/Dockerfile +43 -0
- package/src/runtime/cyberia-server/Dockerfile.dev +56 -0
- package/src/runtime/engine-cyberia/Dockerfile +161 -0
- package/src/runtime/engine-cyberia/Dockerfile.dev +161 -0
- package/src/runtime/engine-cyberia/Dockerfile.test +165 -0
- package/src/runtime/engine-cyberia/compose.env +144 -0
- package/src/runtime/engine-cyberia/docker-compose.yml +434 -0
- package/src/runtime/engine-cyberia/ipfs/configure-ipfs.sh +13 -0
- package/src/runtime/engine-cyberia/mongodb/entrypoint.sh +76 -0
- package/src/runtime/engine-cyberia/nginx.conf +128 -0
- package/src/runtime/express/Dockerfile +45 -0
- package/src/runtime/express/Express.js +285 -0
- package/src/runtime/lampp/Dockerfile +62 -0
- package/src/runtime/lampp/Lampp.js +359 -0
- package/src/runtime/nginx/Nginx.js +250 -0
- package/src/runtime/wp/Dockerfile +62 -0
- package/src/runtime/wp/Wp.js +642 -0
- package/src/server/auth.js +713 -0
- package/src/server/backup.js +102 -0
- package/src/server/catalog.js +72 -0
- package/src/server/conf.js +2316 -0
- package/src/server/cron.js +476 -0
- package/src/server/crypto.js +210 -0
- package/src/server/data-query.js +461 -0
- package/src/server/dns.js +553 -0
- package/src/server/downloader.js +73 -0
- package/src/server/logger.js +229 -0
- package/src/server/middlewares.js +152 -0
- package/src/server/peer.js +75 -0
- package/src/server/process.js +299 -0
- package/src/server/proxy.js +139 -0
- package/src/server/runtime-status.js +252 -0
- package/src/server/runtime.js +183 -0
- package/src/server/start.js +272 -0
- package/src/server/tls.js +254 -0
- package/src/server/valkey.js +201 -0
- package/src/server.js +25 -0
- package/src/ws/IoInterface.js +129 -0
- package/src/ws/IoServer.js +68 -0
- package/src/ws/core/channels/core.ws.chat.js +68 -0
- package/src/ws/core/channels/core.ws.mailer.js +116 -0
- package/src/ws/core/channels/core.ws.stream.js +90 -0
- package/src/ws/core/core.ws.connection.js +41 -0
- package/src/ws/core/core.ws.emit.js +37 -0
- package/src/ws/core/core.ws.server.js +44 -0
- package/src/ws/default/channels/default.ws.main.js +57 -0
- package/src/ws/default/default.ws.connection.js +35 -0
- package/src/ws/default/default.ws.emit.js +14 -0
- package/src/ws/default/default.ws.server.js +39 -0
- package/test/api.test.js +53 -0
- package/test/crypto.test.js +117 -0
- package/test/cyberia-instance-conf-defaults.test.js +140 -0
- package/test/deploy-monitor.test.js +267 -0
- package/test/shape-generator.test.js +463 -0
- package/tsconfig.docs.json +15 -0
- package/typedoc.dd-cyberia.json +31 -0
- package/typedoc.json +31 -0
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
# Cyberia Saga — Top-Down Procedural Generation guided by LLMs
|
|
2
|
+
|
|
3
|
+
> Semantic Reverse-Engineering of a complete saga ecosystem from a single theme.
|
|
4
|
+
|
|
5
|
+
## Concept
|
|
6
|
+
|
|
7
|
+
Classic procedural content generation is **bottom-up**: you draw maps, place
|
|
8
|
+
cells and entities, then layer text and logic on top of that spatial substrate.
|
|
9
|
+
Cyberia inverts the pipeline.
|
|
10
|
+
|
|
11
|
+
**Top-Down PCG (Semantic Reverse-Engineering)** uses an LLM to infer the entire
|
|
12
|
+
**semantic ontology and narrative backbone first**, from one high-level natural
|
|
13
|
+
language theme. We generate the lightweight, easy-to-align textual layer —
|
|
14
|
+
slugs, titles, descriptions, dialogues, objective requirements, item stats —
|
|
15
|
+
_before_ a single coordinate or texture exists. Spatial layout and graphic
|
|
16
|
+
synthesis become a separate, later stage that fills in a backbone that is
|
|
17
|
+
already internally consistent.
|
|
18
|
+
|
|
19
|
+
This is a specialized form of AI-Generated Content (AIGC). The win is
|
|
20
|
+
**consistency**: by resolving names, references, and progression as pure text,
|
|
21
|
+
the world is logically coherent before we pay the cost of spatial and visual
|
|
22
|
+
synthesis.
|
|
23
|
+
|
|
24
|
+
## Architectural boundary (hard rule)
|
|
25
|
+
|
|
26
|
+
This stage owns **text and logical metadata only**.
|
|
27
|
+
|
|
28
|
+
| Owned here (textual) | Out of scope (forced to `null` / default) |
|
|
29
|
+
| -------------------------------- | --------------------------------------------- |
|
|
30
|
+
| codes, titles, descriptions | `sourceMapCode`, `sourceCellX`, `sourceCellY` |
|
|
31
|
+
| dialogue text, speakers, mood | `initCellX`, `initCellY`, map grid sizes |
|
|
32
|
+
| quest steps, objectives, rewards | asset CIDs, textures, `render` frames |
|
|
33
|
+
| item stats balance, item types | atlas / sprite-sheet generation |
|
|
34
|
+
|
|
35
|
+
The generator normalizes every spatial and render field to `null` regardless of
|
|
36
|
+
what the model returns. Downstream spatial + graphic synthesis is responsible
|
|
37
|
+
for binding quests/actions to cells and producing object-layer renders.
|
|
38
|
+
|
|
39
|
+
## Pipeline
|
|
40
|
+
|
|
41
|
+
The ecosystem is generated in **six bounded, sequential stages** rather than a
|
|
42
|
+
single monolithic request. Each stage emits one layer and feeds canonical
|
|
43
|
+
(slugified) references into the next, so no single model call has to produce the
|
|
44
|
+
whole cross-referenced graph — this keeps each Gemini request small enough to
|
|
45
|
+
complete well within the request timeout.
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
theme (from --prompt, OR auto-synthesized from CYBERIA-LORE.md)
|
|
49
|
+
│
|
|
50
|
+
▼
|
|
51
|
+
Google Gemini (Generative Language API /v1beta/models/{model}:generateContent)
|
|
52
|
+
│ stage 1 foundation → saga identity + objectLayers (item ids)
|
|
53
|
+
│ stage 2 maps → maps (narrative zones / places)
|
|
54
|
+
│ stage 3 quests → quests (consume item ids + map zones)
|
|
55
|
+
│ stage 4 dialogues → dialogues (consume quest codes)
|
|
56
|
+
│ stage 5 actions → actions (consume quest + dialogue + item codes)
|
|
57
|
+
│ stage 6 skills → skills (bind trigger items → logic-event handlers)
|
|
58
|
+
▼
|
|
59
|
+
normalizeSagaPayload() ── enforces text-only boundary, slugifies, resolves refs,
|
|
60
|
+
│ derives the CyberiaInstance shell from saga + map codes
|
|
61
|
+
▼
|
|
62
|
+
persistSagaPayload() ── idempotent upserts into MongoDB
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The **instance** is not a model call: it is derived deterministically from the
|
|
66
|
+
saga's own metadata (`code`, `name`, `description`) plus the map codes the saga
|
|
67
|
+
already defined, so the saga is immediately playable as a `CyberiaInstance`.
|
|
68
|
+
Skill `logicEventId`s are restricted to the handlers the simulation actually
|
|
69
|
+
implements (`projectile`, `coin_drop_or_transaction`, `doppelganger`); unknown
|
|
70
|
+
ones are dropped during normalization.
|
|
71
|
+
|
|
72
|
+
### Theme source: prompt vs. lore-grounded auto-generation
|
|
73
|
+
|
|
74
|
+
- **`--prompt` given** → the theme is used verbatim with no lore grounding
|
|
75
|
+
(current behavior).
|
|
76
|
+
- **`--prompt` omitted** → a distinct theme is auto-synthesized from the Cyberia
|
|
77
|
+
base lore (`src/client/public/cyberia-docs/CYBERIA-LORE.md`, override with
|
|
78
|
+
`--lore-path`). The whole lore document is read and passed to Gemini, and every
|
|
79
|
+
stage is grounded in it so the saga reads as a chapter of the canon. Variety is
|
|
80
|
+
driven by a random world-first **subject**, an explicit **narrative tone**, a
|
|
81
|
+
**faction role** (background vs. driver), a random entropy token, and a
|
|
82
|
+
configurable sampling **temperature** (`--temperature`, default `1.3`) — so
|
|
83
|
+
repeated runs surface very different, grounded Cyberia stories.
|
|
84
|
+
|
|
85
|
+
#### Subject — the world comes first
|
|
86
|
+
|
|
87
|
+
The primary diversity lever. Each auto-theme picks one **world-first subject** at
|
|
88
|
+
random so the output spreads across lived Cyberia reality rather than collapsing
|
|
89
|
+
into faction politics: daily life, frontier survival, ecology, salvage, trade,
|
|
90
|
+
exploration, mutagen clans, synthetics, Instance life, anomalies, small-community
|
|
91
|
+
crises, infrastructure, relic hunting, personal/family stories, culture, and
|
|
92
|
+
grounded jobs that go sideways. (Random, not customizable.)
|
|
93
|
+
|
|
94
|
+
#### Faction role — background by default, driver on request
|
|
95
|
+
|
|
96
|
+
The confederations are large powers that are **always present but rarely the
|
|
97
|
+
topic**. By default they stay **background only** — borders, trade influence,
|
|
98
|
+
security presence, taxes, historical scars — never the subject.
|
|
99
|
+
|
|
100
|
+
To make a faction the **central driver** of the saga, name one or more with
|
|
101
|
+
`--faction-context` (comma-separated). Valid keys:
|
|
102
|
+
|
|
103
|
+
| Key | Confederation |
|
|
104
|
+
| --------- | ---------------------------------------------- |
|
|
105
|
+
| `zenith` | the Zenith Empire (Red) |
|
|
106
|
+
| `nova` | the Nova Republic (Blue) |
|
|
107
|
+
| `atlas` | the Atlas Confederation (Yellow) |
|
|
108
|
+
| `neutral` | unaligned independent enclaves / neutral parties |
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Nova + Zenith are the driving pressure of the saga
|
|
112
|
+
node bin/cyberia.js generate-saga --faction-context 'nova,zenith'
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Unknown keys warn and are skipped; if none resolve (or the flag is unset) the
|
|
116
|
+
saga falls back to background factions. Even when driven, the saga is still told
|
|
117
|
+
through the subject's people and places, not abstract galaxy-wide politics.
|
|
118
|
+
|
|
119
|
+
#### Character culture & naming
|
|
120
|
+
|
|
121
|
+
To stop the model collapsing into cliché sci-fi names (John, Nova, X-99…) and to
|
|
122
|
+
make Cyberia feel descended from Earth's many diasporas, a **naming &
|
|
123
|
+
character-culture** block is injected into every generation stage that names
|
|
124
|
+
people or places. It uses `CHARACTER_NAMES_POOL` as a **statistical/stylistic
|
|
125
|
+
prior — inspiration only, never a whitelist**: the model is told to invent fresh
|
|
126
|
+
names with similar linguistic/demographic characteristics (evolving, hybridizing,
|
|
127
|
+
or blending them with professions, slang, and technical terms), reusing an exact
|
|
128
|
+
sample only rarely.
|
|
129
|
+
|
|
130
|
+
Two optional flags steer it; **both default to random** when unset:
|
|
131
|
+
|
|
132
|
+
- **`--character-context <keys>`** — comma-separated pools to draw inspiration
|
|
133
|
+
from (unset → a random non-empty subset, so runs vary their cultural mix).
|
|
134
|
+
Unknown keys warn and are skipped. Valid keys:
|
|
135
|
+
|
|
136
|
+
| Key | Flavor |
|
|
137
|
+
| --- | ------ |
|
|
138
|
+
| `low_level_synthetics` | serialized / technical utility-frame designations |
|
|
139
|
+
| `high_fidelity_synthetics` | refined, near-human synthetic names |
|
|
140
|
+
| `global_latin_diaspora` | Latin / Iberian-descended |
|
|
141
|
+
| `east_asian_pacific_diaspora` | East-Asian / Pacific-descended |
|
|
142
|
+
| `middle_eastern_turkish_diaspora` | Middle-Eastern / Turkish-descended |
|
|
143
|
+
| `sub_saharan_african_diaspora` | Sub-Saharan African-descended |
|
|
144
|
+
| `classic_western_scifi` | gritty Anglo operators / enforcers |
|
|
145
|
+
| `mutagen_clans` | organic, mutation-flavored clan names |
|
|
146
|
+
|
|
147
|
+
- **`--cultural-exposure <mode>`** — how mixed the population is (unset → random):
|
|
148
|
+
|
|
149
|
+
| Mode | Effect |
|
|
150
|
+
| ---- | ------ |
|
|
151
|
+
| `cosmopolitan` | heavy mixing, hybrid surnames, intermarriage — maximizes variety |
|
|
152
|
+
| `local` | isolated clans/enclaves, strong local naming traditions, internally consistent |
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Latin + East-Asian diaspora names in a highly mixed, cosmopolitan population
|
|
156
|
+
node bin/cyberia.js generate-saga \
|
|
157
|
+
--character-context 'global_latin_diaspora,east_asian_pacific_diaspora' \
|
|
158
|
+
--cultural-exposure cosmopolitan
|
|
159
|
+
|
|
160
|
+
# An isolated mutagen-clan enclave with consistent internal naming
|
|
161
|
+
node bin/cyberia.js generate-saga --character-context 'mutagen_clans' --cultural-exposure local
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### Narrative tone
|
|
165
|
+
|
|
166
|
+
The theme commits to one of four broad narrative types — chosen **uniformly
|
|
167
|
+
(~25% each)** unless forced with `--tone`:
|
|
168
|
+
|
|
169
|
+
| Tone | Register |
|
|
170
|
+
| ----------- | -------------------------------------------------------------- |
|
|
171
|
+
| `adventure` | noir high-risk missions: covert ops, sabotage, combat, rogue AI, mystery |
|
|
172
|
+
| `politics` | power & ideology at any scale — councils, clans, enclaves, revolutions (confederation geopolitics only sometimes) |
|
|
173
|
+
| `tragic` | heartbreaking, intimate: family, bonds, loss, grief |
|
|
174
|
+
| `comedy` | everyday absurdity and silliness, played for humor |
|
|
175
|
+
|
|
176
|
+
#### Spatial context (physical vs. hyperspace)
|
|
177
|
+
|
|
178
|
+
Cyberia has two equally important layers — the **Physical Layer** (fleets,
|
|
179
|
+
colonies, logistics, force) and the **Hyperspace Layer** (persistent Instances,
|
|
180
|
+
memory-cities, digital ecosystems). Because the lore is titled *The Frontier of
|
|
181
|
+
Hyperspace*, an unconstrained model drifts to hyperspace-only premises. So the
|
|
182
|
+
auto-theme picks a spatial context **explicitly and uniformly (~33.3% each)**:
|
|
183
|
+
|
|
184
|
+
| Context | Premise lives in… |
|
|
185
|
+
| ------------ | -------------------------------------------------------------- |
|
|
186
|
+
| `physical` | the material frontier only — no hyperspace |
|
|
187
|
+
| `mixed` | the porous interplay where events bleed between both layers |
|
|
188
|
+
| `hyperspace` | inside the Instances only — not the physical frontier |
|
|
189
|
+
|
|
190
|
+
Force one with `--space-context <physical\|mixed\|hyperspace>`; an invalid value
|
|
191
|
+
warns and falls back to random. This applies to auto-generation only (with
|
|
192
|
+
`--prompt`, you control the setting yourself).
|
|
193
|
+
|
|
194
|
+
> Transient `generateContent` failures (timeouts, 5xx, malformed JSON) are
|
|
195
|
+
> retried automatically with backoff (`maxRetries`, default 2) per stage.
|
|
196
|
+
|
|
197
|
+
Source:
|
|
198
|
+
|
|
199
|
+
- `src/projects/cyberia/gemini-client.js` — thin Gemini `generateContent` JSON client.
|
|
200
|
+
- `src/projects/cyberia/generate-saga.js` — system prompt, normalization, persistence.
|
|
201
|
+
- `bin/cyberia.js` — `generate-saga` CLI command wiring.
|
|
202
|
+
|
|
203
|
+
## Usage
|
|
204
|
+
|
|
205
|
+
### Lore-based auto-generation (no `--prompt`)
|
|
206
|
+
|
|
207
|
+
With no `--prompt`, the theme is auto-synthesized from the Cyberia base lore.
|
|
208
|
+
Omitting the steering flags lets the generator pick a random faction, tone and
|
|
209
|
+
spatial context each run, so the same command keeps producing different sagas:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Fully random, lore-grounded saga (faction + tone + spatial context all random)
|
|
213
|
+
node bin/cyberia.js generate-saga
|
|
214
|
+
|
|
215
|
+
# Force a heartbreaking, character-driven story grounded in physical reality
|
|
216
|
+
node bin/cyberia.js generate-saga --tone tragic --space-context physical
|
|
217
|
+
|
|
218
|
+
# A political saga set inside hyperspace Instances
|
|
219
|
+
node bin/cyberia.js generate-saga --tone politics --space-context hyperspace
|
|
220
|
+
|
|
221
|
+
# A light comedy that spans both layers, cranked up for more divergence
|
|
222
|
+
node bin/cyberia.js generate-saga --tone comedy --space-context mixed --temperature 1.7
|
|
223
|
+
|
|
224
|
+
# A noir adventure, kept tightly on-theme with a low temperature
|
|
225
|
+
node bin/cyberia.js generate-saga --tone adventure --temperature 0.6
|
|
226
|
+
|
|
227
|
+
# Steer only the spatial layer; let subject + tone stay random
|
|
228
|
+
node bin/cyberia.js generate-saga --space-context physical
|
|
229
|
+
|
|
230
|
+
# Make Nova + Zenith the driving pressure (factions as the main theme)
|
|
231
|
+
node bin/cyberia.js generate-saga --faction-context 'nova,zenith'
|
|
232
|
+
|
|
233
|
+
# Steer character names toward specific diasporas and a cosmopolitan, mixed population
|
|
234
|
+
node bin/cyberia.js generate-saga \
|
|
235
|
+
--character-context 'global_latin_diaspora,sub_saharan_african_diaspora' --cultural-exposure cosmopolitan
|
|
236
|
+
|
|
237
|
+
# Dry run (no DB writes) and capture the payload to inspect it
|
|
238
|
+
node bin/cyberia.js generate-saga --tone tragic --dry-run --out ./engine-private/cyberia-sagas/preview.json
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Each run logs the chosen facets, e.g.
|
|
242
|
+
`Theme: subject="..." | context=physical | tone=tragic | factions=background`,
|
|
243
|
+
then `Auto-generated theme: "..."`.
|
|
244
|
+
|
|
245
|
+
### Generate from an explicit theme
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
node bin/cyberia.js generate-saga \
|
|
249
|
+
--prompt "A rebel hacker base hidden in the sewers of Santiago"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Either way, when `--out` is omitted the payload is written to
|
|
253
|
+
`./engine-private/cyberia-sagas/<saga-code>.json`.
|
|
254
|
+
|
|
255
|
+
Import a previously generated payload (no model call):
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
node bin/cyberia.js generate-saga --import ./engine-private/cyberia-sagas/<saga-code>.json
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
`--import` reads the same JSON shape `--out` writes and loads it through the
|
|
262
|
+
**same** normalize → persist path as generation. Re-running is safe: documents
|
|
263
|
+
are upserted by `code` (dialogues by `code` + `order`), so existing entries are
|
|
264
|
+
overwritten and codes are never duplicated.
|
|
265
|
+
|
|
266
|
+
Options:
|
|
267
|
+
|
|
268
|
+
| Flag | Description |
|
|
269
|
+
| -------------------------- | ---------------------------------------------------- |
|
|
270
|
+
| `--prompt <theme>` | Theme seed. Omit to auto-generate from the lore. |
|
|
271
|
+
| `--import <file>` | Load a generated payload file into the DB. |
|
|
272
|
+
| `--lore-path <path>` | Override the base-lore doc (auto-generate mode). |
|
|
273
|
+
| `--space-context <ctx>` | Force `physical` \| `mixed` \| `hyperspace` (else random). |
|
|
274
|
+
| `--tone <tone>` | Force `adventure` \| `politics` \| `tragic` \| `comedy` (else random). |
|
|
275
|
+
| `--faction-context <keys>` | Comma-separated `zenith` \| `nova` \| `atlas` \| `neutral` that DRIVE the theme (else background). |
|
|
276
|
+
| `--character-context <keys>` | Comma-separated `CHARACTER_NAMES_POOL` keys for name inspiration (else random subset). |
|
|
277
|
+
| `--cultural-exposure <mode>` | `cosmopolitan` \| `local` naming-diversity mode (else random). |
|
|
278
|
+
| `--temperature <value>` | Sampling temperature for every model call (default `1.3`). |
|
|
279
|
+
| `--model <id>` | Gemini model id (default `gemma-4-26b-a4b-it`). |
|
|
280
|
+
| `--timeout <ms>` | Per-request timeout in ms (default `300000`). |
|
|
281
|
+
| `--thinking-level <level>` | `low` \| `medium` \| `high` (default `high`). |
|
|
282
|
+
| `--out <file>` | Payload dump path (default `./engine-private/cyberia-sagas/<saga-code>.json`). |
|
|
283
|
+
| `--dry-run` | Normalize only; no database writes. |
|
|
284
|
+
| `--env-path <path>` | Env file to load (`GEMINI_API_KEY`, deploy vars). |
|
|
285
|
+
| `--mongo-host <host>` | Mongo host override. |
|
|
286
|
+
| `--dev` | Force the development environment. |
|
|
287
|
+
|
|
288
|
+
`GEMINI_API_KEY` must be available in the environment or the `--env-path` file.
|
|
289
|
+
|
|
290
|
+
## Output schema
|
|
291
|
+
|
|
292
|
+
A single JSON object with these interrelated sections:
|
|
293
|
+
|
|
294
|
+
- **saga** — `code`, `name`, `description`, `mapCodes[]`, `itemIds[]`, `questCodes[]`.
|
|
295
|
+
- **instance** — the playable `CyberiaInstance` shell derived from the saga
|
|
296
|
+
metadata: `code`, `name`, `description`, `tags[]`, `cyberiaMapCodes[]` (the
|
|
297
|
+
saga's map codes), `itemIds[]` (`{ id, defaultPlayerInventory }`),
|
|
298
|
+
`topologyMode`. Spatial topology (`portals`) and the tuning ref (`conf`) are
|
|
299
|
+
left empty here and bound by downstream spatial synthesis.
|
|
300
|
+
- **maps[]** — narrative zones the quest chain visits: `code`, `name`,
|
|
301
|
+
`description` (text only — grid/cells/entities stay at schema defaults). Their
|
|
302
|
+
codes populate `saga.mapCodes` and `instance.cyberiaMapCodes`.
|
|
303
|
+
- **quests[]** — textual objectives, titles, linear `steps[]` with
|
|
304
|
+
`collect | talk | kill` objectives and `rewards[]`. Spatial fields `null`.
|
|
305
|
+
- **dialogues[]** — narrative nodes: `code`, `order`, `speaker`, `text`, `mood`.
|
|
306
|
+
- **actions[]** — interaction nodes: `dialogCode`, `questDialogueCodes[]`,
|
|
307
|
+
`shopItems[]` pricing, and `craftRecipes[]`. Spatial fields `null`.
|
|
308
|
+
- **skills[]** — `triggerItemId` → logic skills: `logicEventIds[]` (derived) and
|
|
309
|
+
`skills[]` (`logicEventId`, `name`, `description`, `summonedEntityItemId`). The
|
|
310
|
+
trigger and every non-placeholder summoned id resolve to an
|
|
311
|
+
`objectLayers[].item.id`.
|
|
312
|
+
- **objectLayers[]** — item data with balanced `stats`, an `item`
|
|
313
|
+
(`id`, `type`, `description`, `activable`), and `render: null`.
|
|
314
|
+
|
|
315
|
+
Object-layer item shape:
|
|
316
|
+
|
|
317
|
+
```json
|
|
318
|
+
{
|
|
319
|
+
"stats": { "effect": 4, "resistance": 4, "agility": 3, "range": 10, "intelligence": 5, "utility": 10 },
|
|
320
|
+
"item": { "id": "generated-id", "type": "skin", "description": "Lore-matching description", "activable": true },
|
|
321
|
+
"render": null
|
|
322
|
+
}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
## Referential integrity
|
|
326
|
+
|
|
327
|
+
The system prompt requires the model to keep cross-references resolvable, and
|
|
328
|
+
normalization slugifies every code/id so they line up:
|
|
329
|
+
|
|
330
|
+
- quest objective/reward `itemId`, shop `itemId`, and craft `itemId` resolve to
|
|
331
|
+
an `objectLayers[].item.id`;
|
|
332
|
+
- action `questDialogueCodes[].questCode` resolves to a `quests[].code`;
|
|
333
|
+
- action `dialogCode` / `questDialogueCodes[].dialogCode` resolve to a
|
|
334
|
+
`dialogues[].code`;
|
|
335
|
+
- skill `triggerItemId` resolves to an `objectLayers[].item.id` (skills whose
|
|
336
|
+
trigger is unknown are dropped), and each non-placeholder `summonedEntityItemId`
|
|
337
|
+
resolves to one too — a deterministic repair (`ensureSkillLinkage`) appends a
|
|
338
|
+
minimal `skill`-type item for any summoned id the model omitted;
|
|
339
|
+
- `saga.questCodes` / `saga.itemIds` are reconciled to include every generated
|
|
340
|
+
quest and item (including appended skill items), and `instance.cyberiaMapCodes`
|
|
341
|
+
/ `instance.itemIds` mirror the saga's.
|
|
342
|
+
|
|
343
|
+
### `talk` objectives (guaranteed fulfillable)
|
|
344
|
+
|
|
345
|
+
A `talk` objective completes **only** when the player views the `dialogCode` an
|
|
346
|
+
action maps for that quest, on the NPC bot whose skin matches the objective's
|
|
347
|
+
`itemId` (the bot skin derives from the action's `default-<skin>` greeting). A
|
|
348
|
+
missing link means the objective can never be completed.
|
|
349
|
+
|
|
350
|
+
So a talk objective requires four aligned pieces: a `skin` item for the NPC, the
|
|
351
|
+
`talk` objective referencing that skin id, a talk dialogue group, and an action
|
|
352
|
+
with `dialogCode: default-<skin>` plus a `questDialogueCodes` entry
|
|
353
|
+
`{ questCode, dialogCode }`. The prompts ask the model to produce all four (the
|
|
354
|
+
quests/dialogues/actions stages are told the `talkTargets`), and a deterministic
|
|
355
|
+
**repair pass** (`ensureTalkLinkage`) then guarantees it: for every talk
|
|
356
|
+
objective it creates any missing skin item, talk dialogue
|
|
357
|
+
(`quest-talk-<questCode>`), or NPC action mapping, and rewrites a
|
|
358
|
+
`questDialogueCodes` entry that points at a non-existent dialogue. Reruns where
|
|
359
|
+
the model already produced valid links are a no-op.
|
|
360
|
+
|
|
361
|
+
## Persistence
|
|
362
|
+
|
|
363
|
+
Documents are written sequentially with idempotent upserts (rerunnable):
|
|
364
|
+
|
|
365
|
+
| Section | Model | Upsert key |
|
|
366
|
+
| ------------- | ---------------------- | ---------------- |
|
|
367
|
+
| saga | `CyberiaSagaModel` | `code` |
|
|
368
|
+
| instance | `CyberiaInstanceModel` | `code` |
|
|
369
|
+
| maps | `CyberiaMapModel` | `code` |
|
|
370
|
+
| quests | `CyberiaQuestModel` | `code` |
|
|
371
|
+
| dialogues | `CyberiaDialogueModel` | `code` + `order` |
|
|
372
|
+
| actions | `CyberiaActionModel` | `code` |
|
|
373
|
+
| skills | `CyberiaSkillModel` | `triggerItemId` |
|
|
374
|
+
| object layers | `ObjectLayerModel` | `data.item.id` |
|
|
375
|
+
|
|
376
|
+
The **instance** refreshes its textual/logical fields every run but PRESERVES
|
|
377
|
+
`portals` and `conf` (set only on insert), so downstream spatial topology is
|
|
378
|
+
never clobbered — the same preservation contract `ObjectLayer` render/ledger
|
|
379
|
+
uses. **Skills** are upserted by `triggerItemId` into the `CyberiaSkill`
|
|
380
|
+
collection — the authoritative own-model source the gRPC server reads.
|
|
381
|
+
|
|
382
|
+
Both `generate` and `import` go through the same persistence path. Object-layer
|
|
383
|
+
items are written as real `ObjectLayer` documents so they are immediately
|
|
384
|
+
editable in `src/client/components/cyberia/ObjectLayerEngineViewer.js`:
|
|
385
|
+
|
|
386
|
+
- `data.render` is empty (`cid: null`, `metadataCid: null`) and the top-level
|
|
387
|
+
`cid` is `null` — there is no atlas yet;
|
|
388
|
+
- `data.ledger.type` is `OFF_CHAIN` (no on-chain token minted);
|
|
389
|
+
- `sha256` is computed over `data` with the canonical `computeSha256` helper.
|
|
390
|
+
|
|
391
|
+
The render and ledger are the **graphic/economic synthesis** stage and are set
|
|
392
|
+
later from the viewer. Re-running generate/import refreshes the textual
|
|
393
|
+
stats/item fields but **preserves any render or ledger already set** — it never
|
|
394
|
+
clobbers a populated render back to `null`. `saga.itemIds` records every item id.
|