cyberia 3.2.12 → 3.2.70
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 +127 -68
- 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 +49 -0
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +48 -0
- package/.github/workflows/docker-image.cyberia-server.ci.yml +69 -0
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +69 -0
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +52 -0
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +52 -0
- package/.github/workflows/engine-cyberia.cd.yml +34 -24
- package/.github/workflows/engine-cyberia.ci.yml +27 -5
- package/.github/workflows/ghpkg.ci.yml +89 -1
- package/.github/workflows/gitlab.ci.yml +1 -1
- package/.github/workflows/hardhat.ci.yml +1 -1
- package/.github/workflows/npmpkg.ci.yml +19 -12
- package/.github/workflows/publish.ci.yml +2 -2
- package/.github/workflows/publish.cyberia.ci.yml +5 -16
- package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -8
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/CHANGELOG.md +451 -1
- package/CLI-HELP.md +1040 -1130
- package/Dockerfile +141 -43
- package/Dockerfile.dev +143 -0
- package/Dockerfile.test +165 -0
- package/README.md +1 -1
- package/baremetal/commission-workflows.json +1 -0
- package/bin/build.js +128 -136
- package/bin/build.template.js +25 -179
- package/bin/cyberia.js +1089 -188
- package/bin/deploy.js +6 -3
- package/bin/index.js +1089 -188
- package/bump.config.js +1 -0
- package/compose.env +131 -0
- package/conf.js +19 -1
- package/deployment.yaml +74 -2
- package/docker-compose.yml +316 -0
- package/hardhat/hardhat.config.js +2 -2
- package/hardhat/package-lock.json +620 -2041
- package/hardhat/package.json +7 -5
- package/hardhat/scripts/deployObjectLayerToken.js +18 -18
- package/hardhat/test/ObjectLayerToken.js +378 -274
- package/ipfs/configure-ipfs.sh +13 -0
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +74 -2
- package/manifests/deployment/dd-cyberia-development/grpc-service.yaml +17 -0
- package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +32 -0
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/mongodb/entrypoint.sh +76 -0
- package/nginx.conf +87 -0
- package/package.json +34 -22
- package/pv-pvc.yaml +32 -0
- package/scripts/disk-clean.sh +85 -60
- package/scripts/kubeadm-node-setup.sh +317 -0
- package/scripts/link-local-underpost-cli.sh +6 -0
- package/scripts/rocky-kickstart.sh +877 -185
- package/scripts/rpmfusion-ffmpeg-setup.sh +26 -50
- package/scripts/test-monitor.sh +248 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +43 -7
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +17 -25
- package/src/api/cyberia-action/cyberia-action.controller.js +19 -0
- package/src/api/cyberia-action/cyberia-action.model.js +21 -29
- package/src/api/cyberia-action/cyberia-action.router.js +42 -7
- package/src/api/cyberia-action/cyberia-action.service.js +20 -4
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +58 -57
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +37 -6
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +8 -2
- package/src/api/cyberia-entity/cyberia-entity.router.js +39 -7
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +74 -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 +63 -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 +62 -10
- package/src/api/cyberia-instance/cyberia-instance.model.js +32 -2
- package/src/api/cyberia-instance/cyberia-instance.router.js +6 -6
- package/src/api/cyberia-instance/cyberia-world-generator.js +116 -3
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +3 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +39 -7
- package/src/api/cyberia-map/cyberia-map.router.js +21 -6
- package/src/api/cyberia-quest/cyberia-quest.controller.js +38 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +47 -7
- package/src/api/cyberia-quest/cyberia-quest.service.js +59 -4
- package/src/api/cyberia-saga/cyberia-saga.controller.js +74 -0
- package/src/api/cyberia-saga/cyberia-saga.model.js +59 -0
- package/src/api/cyberia-saga/cyberia-saga.router.js +63 -0
- package/src/api/cyberia-saga/cyberia-saga.service.js +42 -0
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +551 -122
- package/src/api/cyberia-skill/cyberia-skill.controller.js +74 -0
- package/src/api/cyberia-skill/cyberia-skill.model.js +50 -0
- package/src/api/cyberia-skill/cyberia-skill.router.js +63 -0
- package/src/api/cyberia-skill/cyberia-skill.service.js +42 -0
- package/src/api/ipfs/ipfs.service.js +28 -15
- package/src/api/object-layer/object-layer.router.js +25 -15
- package/src/api/object-layer/object-layer.service.js +15 -20
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +39 -7
- package/src/cli/baremetal.js +717 -16
- package/src/cli/cluster.js +80 -5
- package/src/cli/deploy.js +326 -292
- package/src/cli/docker-compose.js +648 -0
- package/src/cli/env.js +12 -6
- package/src/cli/fs.js +75 -30
- package/src/cli/image.js +187 -55
- package/src/cli/index.js +157 -6
- package/src/cli/kickstart.js +142 -20
- package/src/cli/monitor.js +387 -6
- package/src/cli/release.js +72 -15
- package/src/cli/repository.js +339 -40
- package/src/cli/run.js +678 -186
- package/src/cli/secrets.js +82 -48
- package/src/cli/ssh.js +234 -0
- package/src/cli/static.js +2 -2
- package/src/client/components/core/PanelForm.js +44 -44
- 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 +219 -13
- package/src/client/components/cyberia/MapEngineCyberia.js +154 -71
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +40 -63
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +34 -20
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +195 -4
- package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +66 -0
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +8 -0
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +8 -0
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +92 -20
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +272 -50
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +3 -3
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +39 -22
- package/src/client/public/cyberia-docs/CYBERIA-LORE.md +88 -0
- package/src/client/public/cyberia-docs/CYBERIA-SAGA.md +394 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +28 -12
- package/src/client/public/cyberia-docs/CYBERIA.md +1 -1
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +27 -5
- package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
- 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 +2 -2
- package/src/client/services/cyberia-map/cyberia-map.management.js +2 -2
- 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/object-layer/object-layer.management.js +6 -6
- package/src/{server → client-builder}/client-build-docs.js +15 -5
- package/src/{server → client-builder}/client-build-live.js +3 -3
- package/src/{server → client-builder}/client-build.js +25 -22
- package/src/{server → client-builder}/client-dev-server.js +3 -3
- package/src/{server → client-builder}/client-icons.js +2 -2
- package/src/{server → client-builder}/ssr.js +5 -5
- package/src/client.build.js +1 -3
- package/src/client.dev.js +1 -1
- package/src/db/mongo/MongoBootstrap.js +12 -12
- package/src/db/mongo/MongooseDB.js +2 -1
- package/src/grpc/cyberia/grpc-server.js +255 -70
- package/src/index.js +12 -1
- package/src/mailer/EmailRender.js +1 -1
- package/src/{server → projects/cyberia}/atlas-sprite-sheet-generator.js +2 -2
- package/src/{server → projects/cyberia}/besu-genesis-generator.js +3 -3
- package/src/projects/cyberia/catalog-cyberia.js +81 -0
- package/src/projects/cyberia/gemini-client.js +175 -0
- package/src/projects/cyberia/generate-saga.js +2107 -0
- package/src/{server → projects/cyberia}/ipfs-client.js +6 -4
- package/src/{server → projects/cyberia}/object-layer.js +12 -108
- package/src/{server → projects/cyberia}/semantic-layer-generator-floor.js +1 -1
- package/src/{server → projects/cyberia}/semantic-layer-generator-resource.js +1 -1
- package/src/{server → projects/cyberia}/semantic-layer-generator-skin.js +1 -1
- package/src/{server → projects/cyberia}/semantic-layer-generator.js +2 -2
- package/src/{server → projects/cyberia}/shape-generator.js +2 -2
- package/src/projects/underpost/catalog-underpost.js +60 -0
- package/src/runtime/cyberia-client/Dockerfile +31 -83
- package/src/runtime/cyberia-client/Dockerfile.dev +23 -30
- package/src/runtime/cyberia-server/Dockerfile +23 -42
- package/src/runtime/cyberia-server/Dockerfile.dev +20 -35
- package/src/runtime/engine-cyberia/Dockerfile +143 -0
- package/src/runtime/engine-cyberia/Dockerfile.dev +143 -0
- package/src/runtime/engine-cyberia/Dockerfile.test +165 -0
- package/src/runtime/engine-cyberia/compose.env +131 -0
- package/src/runtime/engine-cyberia/docker-compose.yml +316 -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 +87 -0
- package/src/runtime/express/Express.js +2 -2
- package/src/runtime/nginx/Nginx.js +250 -0
- package/src/runtime/wp/Dockerfile +3 -3
- package/src/server/catalog.js +72 -0
- package/src/server/conf.js +415 -60
- package/src/server/runtime-status.js +252 -0
- package/src/server/start.js +42 -11
- package/src/server.js +6 -2
- package/test/cyberia-instance-conf-defaults.test.js +140 -0
- package/test/deploy-monitor.test.js +267 -0
- package/test/shape-generator.test.js +7 -1
- package/typedoc.dd-cyberia.json +3 -1
- package/typedoc.json +3 -1
- package/manifests/deployment/dd-test-development/deployment.yaml +0 -256
- package/manifests/deployment/dd-test-development/proxy.yaml +0 -102
- /package/src/client/ssr/{Render.js → RootDocument.js} +0 -0
- /package/src/{server → client-builder}/client-formatted.js +0 -0
package/src/cli/cluster.js
CHANGED
|
@@ -691,7 +691,9 @@ EOF
|
|
|
691
691
|
// shellExec(
|
|
692
692
|
// `sudo sed -i '/SystemdCgroup = true/a selinux_disabled = true' /etc/containerd/config.toml`,
|
|
693
693
|
// );
|
|
694
|
-
|
|
694
|
+
// Restart docker after containerd config changes. Rocky 9 uses systemctl,
|
|
695
|
+
// not the legacy service command.
|
|
696
|
+
shellExec(`sudo systemctl restart docker || sudo service docker restart || true`);
|
|
695
697
|
shellExec(`sudo systemctl enable --now containerd.service`);
|
|
696
698
|
shellExec(`sudo systemctl restart containerd`); // Restart containerd to apply changes
|
|
697
699
|
|
|
@@ -874,6 +876,74 @@ net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-k3s.conf > /dev/null`,
|
|
|
874
876
|
}
|
|
875
877
|
},
|
|
876
878
|
|
|
879
|
+
/**
|
|
880
|
+
* @method _pruneContainerCaches
|
|
881
|
+
* @description Reclaims container-runtime disk left behind after a cluster
|
|
882
|
+
* teardown: stopped containers, unused images, build cache and anonymous
|
|
883
|
+
* volumes. Best-effort across every runtime present on the host (docker,
|
|
884
|
+
* podman, and optionally the CRI runtime via crictl). Each block is guarded
|
|
885
|
+
* by a command-existence check, so it is safe to call when a runtime is
|
|
886
|
+
* absent. This is what turns a "cluster deleted" into "disk actually freed":
|
|
887
|
+
* `kind delete` / `kubeadm reset` remove the cluster but leave gigabytes of
|
|
888
|
+
* images and overlay layers under /var/lib/{docker,containers}.
|
|
889
|
+
* @param {object} [options]
|
|
890
|
+
* @param {boolean} [options.all=true] - Remove all unused images, not just dangling ones.
|
|
891
|
+
* @param {boolean} [options.crictl=false] - Also prune the CRI runtime via crictl.
|
|
892
|
+
* @param {string} [options.criSocket] - Optional crictl --runtime-endpoint override.
|
|
893
|
+
* @private
|
|
894
|
+
*/
|
|
895
|
+
_pruneContainerCaches(options = {}) {
|
|
896
|
+
const all = options.all !== false;
|
|
897
|
+
const a = all ? '-a ' : '';
|
|
898
|
+
logger.info(` -> Pruning container-runtime caches (all=${all})...`);
|
|
899
|
+
// Docker (also matches the podman-docker shim when docker is symlinked to podman).
|
|
900
|
+
shellExec(
|
|
901
|
+
`if command -v docker >/dev/null 2>&1; then sudo docker system prune ${a}--volumes -f; sudo docker builder prune ${a}-f; fi`,
|
|
902
|
+
{ silentOnError: true },
|
|
903
|
+
);
|
|
904
|
+
// Podman native — on this host images/overlays live under /var/lib/containers/storage.
|
|
905
|
+
shellExec(
|
|
906
|
+
`if command -v podman >/dev/null 2>&1; then sudo podman system prune ${a}--volumes -f; fi`,
|
|
907
|
+
{ silentOnError: true },
|
|
908
|
+
);
|
|
909
|
+
if (options.crictl) {
|
|
910
|
+
const ep = options.criSocket ? `--runtime-endpoint ${options.criSocket} ` : '';
|
|
911
|
+
shellExec(
|
|
912
|
+
`if command -v crictl >/dev/null 2>&1; then sudo env PATH="$PATH:/usr/local/bin:/usr/bin" crictl ${ep}rmi --prune; fi`,
|
|
913
|
+
{ silentOnError: true },
|
|
914
|
+
);
|
|
915
|
+
}
|
|
916
|
+
Underpost.cluster._unmountOrphanContainerOverlays();
|
|
917
|
+
},
|
|
918
|
+
|
|
919
|
+
/**
|
|
920
|
+
* @method _unmountOrphanContainerOverlays
|
|
921
|
+
* @description Unmounts leaked container overlay 'merged' mounts under
|
|
922
|
+
* /var/lib/{containers/storage,docker}/overlay. Pruning images/containers
|
|
923
|
+
* frees the backing data but leaves these mountpoints attached, so they
|
|
924
|
+
* keep showing up as identical `overlay ... /merged` rows in `df -h` long
|
|
925
|
+
* after the containers are gone. Only overlays NOT backing a still-existing
|
|
926
|
+
* container are unmounted, so running workloads are never disturbed.
|
|
927
|
+
* Best-effort; safe to call when no runtime is present.
|
|
928
|
+
* @private
|
|
929
|
+
*/
|
|
930
|
+
_unmountOrphanContainerOverlays() {
|
|
931
|
+
logger.info(' -> Unmounting orphaned container overlay mounts...');
|
|
932
|
+
shellExec(`if command -v podman >/dev/null 2>&1; then sudo podman umount --all >/dev/null 2>&1 || true; fi`, {
|
|
933
|
+
silentOnError: true,
|
|
934
|
+
});
|
|
935
|
+
shellExec(
|
|
936
|
+
`active="$(sudo podman ps -aq 2>/dev/null | xargs -r -I{} sudo podman inspect --format '{{.GraphDriver.Data.MergedDir}}' {} 2>/dev/null || true)"
|
|
937
|
+
findmnt -rn -o TARGET 2>/dev/null | grep -E '/var/lib/(containers/storage|docker)/overlay.*/merged' | sort -r | while IFS= read -r m; do
|
|
938
|
+
if ! printf '%s\\n' "$active" | grep -qxF "$m"; then
|
|
939
|
+
echo "Unmounting orphaned overlay: $m"
|
|
940
|
+
sudo umount -l "$m" 2>/dev/null || true
|
|
941
|
+
fi
|
|
942
|
+
done`,
|
|
943
|
+
{ silentOnError: true },
|
|
944
|
+
);
|
|
945
|
+
},
|
|
946
|
+
|
|
877
947
|
/**
|
|
878
948
|
* @method _lazyUmountKubeletMounts
|
|
879
949
|
* @description Lazy-unmounts every mount under /var/lib/kubelet so a
|
|
@@ -908,7 +978,7 @@ net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-k3s.conf > /dev/null`,
|
|
|
908
978
|
if (options.removeVolumeHostPaths) Underpost.cluster._cleanHostPathPvs();
|
|
909
979
|
else logger.info(' -> Skipping (pass --remove-volume-host-paths to enable).');
|
|
910
980
|
|
|
911
|
-
logger.info('Phase 3/
|
|
981
|
+
logger.info('Phase 3/6: Deleting all Kind clusters...');
|
|
912
982
|
shellExec(`clusters=$(kind get clusters)
|
|
913
983
|
if [ -n "$clusters" ]; then
|
|
914
984
|
for c in $clusters; do
|
|
@@ -917,11 +987,14 @@ if [ -n "$clusters" ]; then
|
|
|
917
987
|
done
|
|
918
988
|
fi`);
|
|
919
989
|
|
|
920
|
-
logger.info('Phase 4/
|
|
990
|
+
logger.info('Phase 4/6: Cleaning kubeconfig and Kind Docker networks...');
|
|
921
991
|
shellExec(`rm -rf "$HOME/.kube"`);
|
|
922
992
|
Underpost.cluster.recoverKindDockerNetworks();
|
|
923
993
|
|
|
924
|
-
logger.info('Phase 5/
|
|
994
|
+
logger.info('Phase 5/6: Pruning container-runtime caches (kindest/node images, build cache, volumes)...');
|
|
995
|
+
Underpost.cluster._pruneContainerCaches({ all: true });
|
|
996
|
+
|
|
997
|
+
logger.info('Phase 6/6: Re-applying host configuration (Docker, containerd, sysctl).');
|
|
925
998
|
Underpost.cluster.config();
|
|
926
999
|
|
|
927
1000
|
logger.info('=== KIND SAFE RESET COMPLETE ===');
|
|
@@ -993,7 +1066,7 @@ fi`);
|
|
|
993
1066
|
shellExec(`if ip link show tunl0 >/dev/null 2>&1; then sudo ip link del tunl0; fi`);
|
|
994
1067
|
shellExec(`sudo iptables -F`);
|
|
995
1068
|
shellExec(`sudo iptables -t nat -F`);
|
|
996
|
-
|
|
1069
|
+
Underpost.cluster._pruneContainerCaches({ all: true, crictl: true });
|
|
997
1070
|
|
|
998
1071
|
logger.info('Phase 7/7: Re-applying host configuration (Docker, containerd, sysctl).');
|
|
999
1072
|
Underpost.cluster.config();
|
|
@@ -1040,6 +1113,8 @@ fi`);
|
|
|
1040
1113
|
shellExec(`if [ -d /etc/rancher/k3s ]; then sudo rm -rf /etc/rancher/k3s; fi`);
|
|
1041
1114
|
shellExec(`if ip link show flannel.1 >/dev/null 2>&1; then sudo ip link del flannel.1; fi`);
|
|
1042
1115
|
shellExec(`if ip link show cni0 >/dev/null 2>&1; then sudo ip link del cni0; fi`);
|
|
1116
|
+
// k3s-uninstall.sh removes /var/lib/rancher/k3s; still prune any host docker/podman leftovers.
|
|
1117
|
+
Underpost.cluster._pruneContainerCaches({ all: true });
|
|
1043
1118
|
|
|
1044
1119
|
logger.info('Phase 5/5: Re-applying minimal K3s host config.');
|
|
1045
1120
|
Underpost.cluster.configMinimalK3s();
|