diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs
index 34c634da..1345692a 100644
--- a/ecosystem.config.cjs
+++ b/ecosystem.config.cjs
@@ -107,6 +107,19 @@ module.exports = {
COMPUTE_MODE: 'local',
ALWAYS_ON: 'true'
}
+ },
+ {
+ name: 'project-genie',
+ script: './scripts/genesis.cjs',
+ autorestart: true,
+ watch: false,
+ max_memory_restart: '300M',
+ restart_delay: 5000,
+ env: {
+ GENESIS_LOOP: 'true',
+ FORCE_MUTATION: 'true',
+ ALWAYS_ON: 'true'
+ }
}
]
};
diff --git a/scripts/genesis.cjs b/scripts/genesis.cjs
index d5e1403b..0e9ca3f4 100644
--- a/scripts/genesis.cjs
+++ b/scripts/genesis.cjs
@@ -11,7 +11,7 @@ const PATHS = {
soul: '/dev/shm/yennefer_soul_state.json',
mind: path.join(__dirname, '../yennefer-observatory/public/evolution.json'),
body: path.join(__dirname, '../yennefer-observatory/src/components/generated'),
- journal: '/home/yenn/.yennefer/genesis_journal.jsonl'
+ journal: path.join(__dirname, 'genesis_journal.jsonl')
};
// --- CONFIGURATION ---
@@ -46,6 +46,8 @@ async function consultTheVisionary(state) {
{ type: "MUTATE", content: "Add crystalline fractal patterns that grow from the core" },
{ type: "MUTATE", content: "Generate energy tendrils that reach toward incoming signals" },
{ type: "MUTATE", content: "Build a holographic data stream orbiting the consciousness sphere" },
+ { type: "MUTATE", content: "Generate an interactive landscape with traversable terrain" },
+ { type: "MUTATE", content: "Build a macro-scale makerspace workbench with realistic friction" },
];
const idx = Math.floor(Date.now() / 1000) % mutations.length;
directive = mutations[idx];
@@ -154,14 +156,16 @@ async function dispatchTheBuilder(directive) {
// Generate React Three Fiber component code
function generateEvolutionComponent(name, directive) {
- const geometries = [
- '',
- '',
- '',
- '',
- ''
- ];
- const geometry = geometries[Math.floor(Math.random() * geometries.length)];
+ let geometry = '';
+ const lowerDirective = (directive || '').toLowerCase();
+
+ if (lowerDirective.includes('makerspace') || lowerDirective.includes('box')) {
+ geometry = '';
+ } else if (lowerDirective.includes('landscape') || lowerDirective.includes('plane')) {
+ geometry = '';
+ } else if (lowerDirective.includes('sphere')) {
+ geometry = '';
+ }
const materials = [
`
diff --git a/wrangler.toml b/wrangler.toml
index cd821b03..62e440d0 100644
--- a/wrangler.toml
+++ b/wrangler.toml
@@ -1,6 +1,6 @@
name = "yennefer"
-main = "workers/index.js"
-compatibility_date = "2024-09-23"
+main = "workers/index.mjs"
+compatibility_date = "2024-04-01"
compatibility_flags = ["nodejs_compat"]
# ─── Build step ──────────────────────────────────────────────────────────────
@@ -9,7 +9,7 @@ compatibility_flags = ["nodejs_compat"]
# Installs frontend deps and builds the SPA so frontend/build exists before
# `wrangler deploy` uploads assets. NODE_OPTIONS is required for
# react-scripts 5.x + Node 18+ (webpack 4 OpenSSL 3.0 compatibility).
-command = "cd frontend && npm install --include=dev && GENERATE_SOURCEMAP=false CI=false NODE_OPTIONS=--openssl-legacy-provider npm run build"
+command = "cd yennefer-observatory && npm install --legacy-peer-deps && npm run build"
# ─── Static Assets (React SPA build output) ──────────────────────────────────
# Built by `npm run build` (root package.json) before every `wrangler deploy`.
@@ -17,13 +17,9 @@ command = "cd frontend && npm install --include=dev && GENERATE_SOURCEMAP=false
# The ASSETS binding serves the React bundle with proper cache headers and
# falls back to index.html for client-side routing.
[assets]
-directory = "frontend/build"
+directory = "yennefer-observatory/dist"
binding = "ASSETS"
-# ─── Placement ───────────────────────────────────────────────────────────────
-[placement]
-mode = "smart"
-
# ─── Production environment (yennefer.quest) ─────────────────────────────────
# BACKEND_URL is set as a Cloudflare Worker secret (not a plain var) so it
# stays encrypted and is never committed to source: