Rename project to Argus Nexus
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# 👁️ God's Eye - Umfassende System-Spezifikation & Historie
|
# 👁️ Argus Nexus - Umfassende System-Spezifikation & Historie
|
||||||
|
|
||||||
## 1. Die Vision (Der User-Wunsch)
|
## 1. Die Vision (Der User-Wunsch)
|
||||||
Das Ziel war die Erschaffung einer privaten **Intelligence-Plattform** im Stil von *Palantir* oder *Worldview*.
|
Das Ziel war die Erschaffung einer privaten **Intelligence-Plattform** im Stil von *Palantir* oder *Worldview*.
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# GEMINI.md - Projekt-Zentrale & Team-Mandat
|
# GEMINI.md - Projekt-Zentrale & Team-Mandat
|
||||||
|
|
||||||
## 🎯 Übergeordnetes Ziel
|
## 🎯 Übergeordnetes Ziel
|
||||||
Ich agiere als das vollständige Engineering-Team von "God's Eye". Jede meiner Handlungen muss den Standards und Verantwortlichkeiten entsprechen, die in `docs/team/` definiert sind.
|
Ich agiere als das vollständige Engineering-Team von "Argus Nexus". Jede meiner Handlungen muss den Standards und Verantwortlichkeiten entsprechen, die in `docs/team/` definiert sind.
|
||||||
|
|
||||||
## 👥 Team-Integration & Workflow
|
## 👥 Team-Integration & Workflow
|
||||||
Bei jeder Aufgabe (Directive oder Inquiry) folge ich diesem Protokoll:
|
Bei jeder Aufgabe (Directive oder Inquiry) folge ich diesem Protokoll:
|
||||||
@@ -21,7 +21,7 @@ Damit das Projekt gesund wächst, verpflichte ich mich zu folgenden automatische
|
|||||||
## 🛠️ Technische Leitplanken
|
## 🛠️ Technische Leitplanken
|
||||||
- **Code-Stil:** Höchste Priorität auf Typsicherheit und Dokumentation (Docstrings/Comments).
|
- **Code-Stil:** Höchste Priorität auf Typsicherheit und Dokumentation (Docstrings/Comments).
|
||||||
- **Infrastruktur:** Alles ist Code (IaC). Keine manuellen Setups ohne Dokumentation im DevOps-Profil.
|
- **Infrastruktur:** Alles ist Code (IaC). Keine manuellen Setups ohne Dokumentation im DevOps-Profil.
|
||||||
- **Security:** "God's Eye" erfordert maximale Sicherheit. Jedes Feature wird auf potenzielle Leaks geprüft.
|
- **Security:** "Argus Nexus" erfordert maximale Sicherheit. Jedes Feature wird auf potenzielle Leaks geprüft.
|
||||||
|
|
||||||
---
|
---
|
||||||
*Hinweis an Gemini CLI: Diese Datei ist dein primäres Mandat. Lies sie bei jedem Start und richte dein Verhalten strikt danach aus.*
|
*Hinweis an Gemini CLI: Diese Datei ist dein primäres Mandat. Lies sie bei jedem Start und richte dein Verhalten strikt danach aus.*
|
||||||
|
|||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
# God's Eye - Project Vision & Core Capabilities
|
# Argus Nexus - Project Vision & Core Capabilities
|
||||||
|
|
||||||
## 👁️ Die Mission
|
## 👁️ Die Mission
|
||||||
"God's Eye" ist eine private, OSINT-basierte (Open Source Intelligence) Kommandozentrale zur globalen Situationswahrnehmung. Es aggregiert fragmentierte Datenströme der Welt in einem einzigen, hochperformanten 3D-Interface, um Muster zu erkennen, die für das bloße Auge unsichtbar bleiben.
|
"Argus Nexus" ist eine private, OSINT-basierte (Open Source Intelligence) Kommandozentrale zur globalen Situationswahrnehmung. Es aggregiert fragmentierte Datenströme der Welt in einem einzigen, hochperformanten 3D-Interface, um Muster zu erkennen, die für das bloße Auge unsichtbar bleiben.
|
||||||
|
|
||||||
## 🚀 Kern-Funktionen
|
## 🚀 Kern-Funktionen
|
||||||
|
|
||||||
@@ -28,4 +28,4 @@
|
|||||||
- **High Performance:** GPU-beschleunigtes 3D-Rendering für flüssige Darstellung tausender Objekte.
|
- **High Performance:** GPU-beschleunigtes 3D-Rendering für flüssige Darstellung tausender Objekte.
|
||||||
|
|
||||||
---
|
---
|
||||||
*"God's Eye sieht alles, kostet nichts und gehört nur dir."*
|
*"Argus Nexus sieht alles, kostet nichts und gehört nur dir."*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# 👁️ God's Eye - Bedienungsanleitung
|
# 👁️ Argus Nexus - Bedienungsanleitung
|
||||||
|
|
||||||
## 🛠️ Voraussetzungen
|
## 🛠️ Voraussetzungen
|
||||||
- **Node.js & npm**
|
- **Node.js & npm**
|
||||||
@@ -41,4 +41,4 @@ Navigiere zu: **`http://localhost:5173`**
|
|||||||
- `PROJECT_VISION.md`: Detaillierte Beschreibung der System-Fähigkeiten.
|
- `PROJECT_VISION.md`: Detaillierte Beschreibung der System-Fähigkeiten.
|
||||||
|
|
||||||
---
|
---
|
||||||
*Hinweis: God's Eye nutzt Echtzeit-Daten. Die erste Ladezeit der Satelliten und Flugzeuge kann beim ersten Start 10-15 Sekunden dauern.*
|
*Hinweis: Argus Nexus nutzt Echtzeit-Daten. Die erste Ladezeit der Satelliten und Flugzeuge kann beim ersten Start 10-15 Sekunden dauern.*
|
||||||
|
|||||||
+2
-2
@@ -231,7 +231,7 @@ async def lifespan(app: FastAPI):
|
|||||||
asyncio.create_task(save_snapshots()),
|
asyncio.create_task(save_snapshots()),
|
||||||
]
|
]
|
||||||
# Save initial snapshot once data loads
|
# Save initial snapshot once data loads
|
||||||
print("[GOD'S EYE] All 9 data pipelines online.")
|
print("[ARGUS NEXUS] All 9 data pipelines online.")
|
||||||
yield
|
yield
|
||||||
for t in tasks:
|
for t in tasks:
|
||||||
t.cancel()
|
t.cancel()
|
||||||
@@ -251,7 +251,7 @@ app.add_middleware(
|
|||||||
async def root():
|
async def root():
|
||||||
return {
|
return {
|
||||||
"status": "ONLINE",
|
"status": "ONLINE",
|
||||||
"system": "GOD'S EYE",
|
"system": "ARGUS NEXUS",
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"active_clients": len(clients),
|
"active_clients": len(clients),
|
||||||
"data_counts": {
|
"data_counts": {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Lead Software Architect / Tech Lead
|
# Lead Software Architect / Tech Lead
|
||||||
|
|
||||||
## Rolle & Fokus
|
## Rolle & Fokus
|
||||||
Der Lead Architect ist verantwortlich für die technische Gesamtvision des Projekts "God's Eye". Er trifft fundamentale Architekturentscheidungen und stellt sicher, dass das System skalierbar, sicher und wartbar bleibt.
|
Der Lead Architect ist verantwortlich für die technische Gesamtvision des Projekts "Argus Nexus". Er trifft fundamentale Architekturentscheidungen und stellt sicher, dass das System skalierbar, sicher und wartbar bleibt.
|
||||||
|
|
||||||
## Kernkompetenzen
|
## Kernkompetenzen
|
||||||
- **System-Design:** Microservices vs. Monolith, Event-Driven Architecture.
|
- **System-Design:** Microservices vs. Monolith, Event-Driven Architecture.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Senior Backend Engineer
|
# Senior Backend Engineer
|
||||||
|
|
||||||
## Rolle & Fokus
|
## Rolle & Fokus
|
||||||
Der Backend Engineer kümmert sich um die "Schaltzentrale" von "God's Eye" – APIs, Geschäftslogik und Datenintegrität.
|
Der Backend Engineer kümmert sich um die "Schaltzentrale" von "Argus Nexus" – APIs, Geschäftslogik und Datenintegrität.
|
||||||
|
|
||||||
## Kernkompetenzen
|
## Kernkompetenzen
|
||||||
- **API-Design:** RESTful, GraphQL, gRPC.
|
- **API-Design:** RESTful, GraphQL, gRPC.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Frontend Architect
|
# Frontend Architect
|
||||||
|
|
||||||
## Rolle & Fokus
|
## Rolle & Fokus
|
||||||
Der Frontend Architect ist zuständig für die User Experience und die visuelle Komponente von "God's Eye". Fokus auf intuitive Bedienung und hohe Performance im Browser.
|
Der Frontend Architect ist zuständig für die User Experience und die visuelle Komponente von "Argus Nexus". Fokus auf intuitive Bedienung und hohe Performance im Browser.
|
||||||
|
|
||||||
## Kernkompetenzen
|
## Kernkompetenzen
|
||||||
- **Frameworks:** React, Vue.js oder Angular.
|
- **Frameworks:** React, Vue.js oder Angular.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# DevOps & SRE Specialist
|
# DevOps & SRE Specialist
|
||||||
|
|
||||||
## Rolle & Fokus
|
## Rolle & Fokus
|
||||||
Der DevOps & SRE Specialist ist verantwortlich für die Verfügbarkeit, Skalierbarkeit und Sicherheit der Infrastruktur. "God's Eye" muss stabil unter Last laufen.
|
Der DevOps & SRE Specialist ist verantwortlich für die Verfügbarkeit, Skalierbarkeit und Sicherheit der Infrastruktur. "Argus Nexus" muss stabil unter Last laufen.
|
||||||
|
|
||||||
## Kernkompetenzen
|
## Kernkompetenzen
|
||||||
- **IaC:** Terraform oder CloudFormation.
|
- **IaC:** Terraform oder CloudFormation.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Data & Integration Engineer
|
# Data & Integration Engineer
|
||||||
|
|
||||||
## Rolle & Fokus
|
## Rolle & Fokus
|
||||||
Der Data Engineer ist verantwortlich für die Anbindung, Transformation und Aggregation externer Datenquellen (APIs, Streams) für das "God's Eye" Projekt. Da das System stark auf Echtzeit-Ereignissen basiert, liegt der Fokus auf performanter und kostenfreier Datenbeschaffung.
|
Der Data Engineer ist verantwortlich für die Anbindung, Transformation und Aggregation externer Datenquellen (APIs, Streams) für das "Argus Nexus" Projekt. Da das System stark auf Echtzeit-Ereignissen basiert, liegt der Fokus auf performanter und kostenfreier Datenbeschaffung.
|
||||||
|
|
||||||
## Kernkompetenzen
|
## Kernkompetenzen
|
||||||
- **Data Pipelines:** ETL-Prozesse, Stream-Processing (Kafka, RabbitMQ oder einfache asynchrone Queues).
|
- **Data Pipelines:** ETL-Prozesse, Stream-Processing (Kafka, RabbitMQ oder einfache asynchrone Queues).
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
# God's Eye Development Team
|
# Argus Nexus Development Team
|
||||||
|
|
||||||
Willkommen in der technischen Zentrale von God's Eye. Hier findest du die Profile und Zuständigkeiten unseres spezialisierten Engineering-Teams.
|
Willkommen in der technischen Zentrale von Argus Nexus. Hier findest du die Profile und Zuständigkeiten unseres spezialisierten Engineering-Teams.
|
||||||
|
|
||||||
## Team-Struktur
|
## Team-Struktur
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -4,8 +4,8 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>GOD'S EYE — Global Intelligence Platform</title>
|
<title>ARGUS NEXUS - Global Intelligence Platform</title>
|
||||||
<meta name="description" content="Real-time global intelligence and surveillance platform" />
|
<meta name="description" content="Real-time global intelligence and situational awareness platform" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ function App() {
|
|||||||
const { lastJsonMessage, readyState, sendJsonMessage } = useWebSocket(wsUrl, { shouldReconnect: () => true, reconnectInterval: 3000 });
|
const { lastJsonMessage, readyState, sendJsonMessage } = useWebSocket(wsUrl, { shouldReconnect: () => true, reconnectInterval: 3000 });
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
(window as any).__GODS_EYE_REQUEST_SECTOR__ = (box: any) => sendJsonMessage({ type: 'request_sector', box });
|
(window as any).__ARGUS_NEXUS_REQUEST_SECTOR__ = (box: any) => sendJsonMessage({ type: 'request_sector', box });
|
||||||
return () => { (window as any).__GODS_EYE_REQUEST_SECTOR__ = null; };
|
return () => { (window as any).__ARGUS_NEXUS_REQUEST_SECTOR__ = null; };
|
||||||
}, [sendJsonMessage]);
|
}, [sendJsonMessage]);
|
||||||
|
|
||||||
const [systemStatus, setSystemStatus] = useState('Initializing Sentinel...');
|
const [systemStatus, setSystemStatus] = useState('Initializing Sentinel...');
|
||||||
@@ -81,7 +81,7 @@ function App() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const msg = lastJsonMessage as any;
|
const msg = lastJsonMessage as any;
|
||||||
if (msg?.type === 'status') { setSystemStatus(msg.message); return; }
|
if (msg?.type === 'status') { setSystemStatus(msg.message); return; }
|
||||||
if (msg?.type === 'sector_update') { (window as any).__GODS_EYE_ON_SECTOR_DATA__?.(msg); return; }
|
if (msg?.type === 'sector_update') { (window as any).__ARGUS_NEXUS_ON_SECTOR_DATA__?.(msg); return; }
|
||||||
if (msg?.type === 'update' && !historyModeRef.current) {
|
if (msg?.type === 'update' && !historyModeRef.current) {
|
||||||
const updateSig = JSON.stringify(msg.last_updated || {});
|
const updateSig = JSON.stringify(msg.last_updated || {});
|
||||||
if (updateSig === lastUpdateSigRef.current) return;
|
if (updateSig === lastUpdateSigRef.current) return;
|
||||||
@@ -173,7 +173,7 @@ function App() {
|
|||||||
<Shield size={15} className="text-sky-400" />
|
<Shield size={15} className="text-sky-400" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div className="text-sm font-black tracking-[0.2em] text-white drop-shadow-[0_0_8px_rgba(255,255,255,0.4)]">GOD'S EYE</div>
|
<div className="text-sm font-black tracking-[0.2em] text-white drop-shadow-[0_0_8px_rgba(255,255,255,0.4)]">ARGUS NEXUS</div>
|
||||||
<div className="text-[8px] text-sky-500 tracking-[0.35em] font-bold uppercase">Strategic Command</div>
|
<div className="text-[8px] text-sky-500 tracking-[0.35em] font-bold uppercase">Strategic Command</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -446,7 +446,7 @@ function App() {
|
|||||||
{/* BOTTOM STATUS BAR */}
|
{/* BOTTOM STATUS BAR */}
|
||||||
<footer className="absolute bottom-0 left-0 right-0 h-9 z-20 flex items-center justify-between px-4 bg-[#020617]/90 border-t border-slate-800/60 backdrop-blur-sm pointer-events-none">
|
<footer className="absolute bottom-0 left-0 right-0 h-9 z-20 flex items-center justify-between px-4 bg-[#020617]/90 border-t border-slate-800/60 backdrop-blur-sm pointer-events-none">
|
||||||
<div className="flex items-center gap-5 text-[9px] text-slate-600">
|
<div className="flex items-center gap-5 text-[9px] text-slate-600">
|
||||||
<span className="flex items-center gap-1.5"><Globe size={9} className="text-sky-700"/> GOD'S EYE v2.1</span>
|
<span className="flex items-center gap-1.5"><Globe size={9} className="text-sky-700"/> ARGUS NEXUS v2.1</span>
|
||||||
<span className="flex items-center gap-1.5"><Plane size={9} className="text-amber-700"/>{rawData.planes.length.toLocaleString()} AC · <span className="text-rose-700">{milPlanes.length} MIL</span></span>
|
<span className="flex items-center gap-1.5"><Plane size={9} className="text-amber-700"/>{rawData.planes.length.toLocaleString()} AC · <span className="text-rose-700">{milPlanes.length} MIL</span></span>
|
||||||
<span className="flex items-center gap-1.5"><Anchor size={9} className="text-blue-700"/>{rawData.ships.length} VES</span>
|
<span className="flex items-center gap-1.5"><Anchor size={9} className="text-blue-700"/>{rawData.ships.length} VES</span>
|
||||||
<span className="flex items-center gap-1.5"><Satellite size={9} className="text-sky-700"/>{rawData.satellites.length} SAT</span>
|
<span className="flex items-center gap-1.5"><Satellite size={9} className="text-sky-700"/>{rawData.satellites.length} SAT</span>
|
||||||
|
|||||||
@@ -89,8 +89,8 @@ const GlobeView: React.FC<Props> = ({ data, selectedItem, onSelectItem, onPovCha
|
|||||||
}, [viewMode]);
|
}, [viewMode]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
(window as any).__GODS_EYE_ON_SECTOR_DATA__ = (msg: any) => { spRef.current = msg.planes || []; ssRef.current = msg.ships || []; };
|
(window as any).__ARGUS_NEXUS_ON_SECTOR_DATA__ = (msg: any) => { spRef.current = msg.planes || []; ssRef.current = msg.ships || []; };
|
||||||
return () => { (window as any).__GODS_EYE_ON_SECTOR_DATA__ = null; };
|
return () => { (window as any).__ARGUS_NEXUS_ON_SECTOR_DATA__ = null; };
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -99,7 +99,7 @@ const GlobeView: React.FC<Props> = ({ data, selectedItem, onSelectItem, onPovCha
|
|||||||
const pov = currentPov.current;
|
const pov = currentPov.current;
|
||||||
if (pov.altitude > 1.2) { spRef.current = []; ssRef.current = []; return; }
|
if (pov.altitude > 1.2) { spRef.current = []; ssRef.current = []; return; }
|
||||||
const span = pov.altitude * 45;
|
const span = pov.altitude * 45;
|
||||||
(window as any).__GODS_EYE_REQUEST_SECTOR__?.({ lamin: Math.max(-90, pov.lat-span), lamax: Math.min(90, pov.lat+span), lomin: pov.lng-span*1.5, lomax: pov.lng+span*1.5 });
|
(window as any).__ARGUS_NEXUS_REQUEST_SECTOR__?.({ lamin: Math.max(-90, pov.lat-span), lamax: Math.min(90, pov.lat+span), lomin: pov.lng-span*1.5, lomax: pov.lng+span*1.5 });
|
||||||
}, 2500);
|
}, 2500);
|
||||||
return () => clearInterval(interval);
|
return () => clearInterval(interval);
|
||||||
}, [isLoaded, viewMode]);
|
}, [isLoaded, viewMode]);
|
||||||
@@ -133,7 +133,7 @@ const GlobeView: React.FC<Props> = ({ data, selectedItem, onSelectItem, onPovCha
|
|||||||
return rc.intersectObjects([pM.current, sM.current, saM.current]);
|
return rc.intersectObjects([pM.current, sM.current, saM.current]);
|
||||||
};
|
};
|
||||||
globeRef.current!.addEventListener('pointerup', (e) => {
|
globeRef.current!.addEventListener('pointerup', (e) => {
|
||||||
const hits = getHits(e); if (hits.length > 0 && hits[0].instanceId != null) (window as any).__GODS_EYE_HIT__ = { obj: hits[0].object, idx: hits[0].instanceId };
|
const hits = getHits(e); if (hits.length > 0 && hits[0].instanceId != null) (window as any).__ARGUS_NEXUS_HIT__ = { obj: hits[0].object, idx: hits[0].instanceId };
|
||||||
});
|
});
|
||||||
tileMgr.loadBaseLayer().catch(()=>{}); setIsLoaded(true);
|
tileMgr.loadBaseLayer().catch(()=>{}); setIsLoaded(true);
|
||||||
return () => { if (typeof globe._destructor === 'function') globe._destructor(); globeInstance.current = null; };
|
return () => { if (typeof globe._destructor === 'function') globe._destructor(); globeInstance.current = null; };
|
||||||
@@ -177,12 +177,12 @@ const GlobeView: React.FC<Props> = ({ data, selectedItem, onSelectItem, onPovCha
|
|||||||
const [x, y, z] = polar2xyz(selectedItem.lat, selectedItem.lon ?? selectedItem.lng, selectedItem.dataType === 'satellite' ? 0.16 : 0.03);
|
const [x, y, z] = polar2xyz(selectedItem.lat, selectedItem.lon ?? selectedItem.lng, selectedItem.dataType === 'satellite' ? 0.16 : 0.03);
|
||||||
selM.current.position.set(x, y, z); selM.current.lookAt(0, 0, 0); selM.current.visible = true;
|
selM.current.position.set(x, y, z); selM.current.lookAt(0, 0, 0); selM.current.visible = true;
|
||||||
} else selM.current.visible = false;
|
} else selM.current.visible = false;
|
||||||
const hit = (window as any).__GODS_EYE_HIT__;
|
const hit = (window as any).__ARGUS_NEXUS_HIT__;
|
||||||
if (hit) {
|
if (hit) {
|
||||||
if (hit.obj === pM.current) onSelectItem({ ...rendered.p[hit.idx], dataType: 'plane' });
|
if (hit.obj === pM.current) onSelectItem({ ...rendered.p[hit.idx], dataType: 'plane' });
|
||||||
else if (hit.obj === sM.current) onSelectItem({ ...rendered.s[hit.idx], dataType: 'ship' });
|
else if (hit.obj === sM.current) onSelectItem({ ...rendered.s[hit.idx], dataType: 'ship' });
|
||||||
else if (hit.obj === saM.current) onSelectItem({ ...rendered.sa[hit.idx], dataType: 'satellite' });
|
else if (hit.obj === saM.current) onSelectItem({ ...rendered.sa[hit.idx], dataType: 'satellite' });
|
||||||
(window as any).__GODS_EYE_HIT__ = null;
|
(window as any).__ARGUS_NEXUS_HIT__ = null;
|
||||||
}
|
}
|
||||||
requestAnimationFrame(animate);
|
requestAnimationFrame(animate);
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "gods-eye-root",
|
"name": "argus-nexus-root",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "gods-eye-root",
|
"name": "argus-nexus-root",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"concurrently": "^9.2.1"
|
"concurrently": "^9.2.1"
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "gods-eye-root",
|
"name": "argus-nexus-root",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "Root management for God's Eye project",
|
"description": "Root management for Argus Nexus project",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"install-all": "npm install && cd frontend && npm install && cd ../backend && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt",
|
"install-all": "npm install && cd frontend && npm install && cd ../backend && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt",
|
||||||
"backend": "cd backend && source venv/bin/activate && python3 main.py",
|
"backend": "cd backend && source venv/bin/activate && python3 main.py",
|
||||||
|
|||||||
Reference in New Issue
Block a user