Compare commits
1 Commits
mimo/build
...
mimo/code/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
808d68cf62 |
16
app.js
16
app.js
@@ -3047,6 +3047,8 @@ function populateAtlas() {
|
|||||||
let downloadedCount = 0;
|
let downloadedCount = 0;
|
||||||
let visibleCount = 0;
|
let visibleCount = 0;
|
||||||
|
|
||||||
|
let readyCount = 0;
|
||||||
|
|
||||||
portals.forEach(portal => {
|
portals.forEach(portal => {
|
||||||
const config = portal.config;
|
const config = portal.config;
|
||||||
if (config.status === 'online') onlineCount++;
|
if (config.status === 'online') onlineCount++;
|
||||||
@@ -3056,6 +3058,8 @@ function populateAtlas() {
|
|||||||
if (!matchesAtlasFilter(config) || !matchesAtlasSearch(config)) return;
|
if (!matchesAtlasFilter(config) || !matchesAtlasSearch(config)) return;
|
||||||
visibleCount++;
|
visibleCount++;
|
||||||
|
|
||||||
|
if (config.interaction_ready && config.status === 'online') readyCount++;
|
||||||
|
|
||||||
const card = document.createElement('div');
|
const card = document.createElement('div');
|
||||||
card.className = 'atlas-card';
|
card.className = 'atlas-card';
|
||||||
card.style.setProperty('--portal-color', config.color);
|
card.style.setProperty('--portal-color', config.color);
|
||||||
@@ -3081,6 +3085,13 @@ function populateAtlas() {
|
|||||||
// Action label
|
// Action label
|
||||||
const actionLabel = config.destination?.action_label
|
const actionLabel = config.destination?.action_label
|
||||||
|| (config.status === 'online' ? 'ENTER' : config.status === 'downloaded' ? 'LAUNCH' : 'VIEW');
|
|| (config.status === 'online' ? 'ENTER' : config.status === 'downloaded' ? 'LAUNCH' : 'VIEW');
|
||||||
|
const agents = config.agents_present || [];
|
||||||
|
const ready = config.interaction_ready && config.status === 'online';
|
||||||
|
const presenceLabel = agents.length > 0
|
||||||
|
? agents.map(a => a.toUpperCase()).join(', ')
|
||||||
|
: 'No agents present';
|
||||||
|
const readyLabel = ready ? 'INTERACTION READY' : 'UNAVAILABLE';
|
||||||
|
const readyClass = ready ? 'status-online' : 'status-offline';
|
||||||
|
|
||||||
card.innerHTML = `
|
card.innerHTML = `
|
||||||
<div class="atlas-card-header">
|
<div class="atlas-card-header">
|
||||||
@@ -3092,6 +3103,10 @@ function populateAtlas() {
|
|||||||
</div>
|
</div>
|
||||||
<div class="atlas-card-desc">${config.description}</div>
|
<div class="atlas-card-desc">${config.description}</div>
|
||||||
${readinessHTML}
|
${readinessHTML}
|
||||||
|
<div class="atlas-card-presence">
|
||||||
|
<div class="atlas-card-agents">${agents.length > 0 ? 'Agents: ' + presenceLabel : presenceLabel}</div>
|
||||||
|
<div class="atlas-card-ready ${readyClass}">${readyLabel}</div>
|
||||||
|
</div>
|
||||||
<div class="atlas-card-footer">
|
<div class="atlas-card-footer">
|
||||||
<div class="atlas-card-coord">X:${config.position.x} Z:${config.position.z}</div>
|
<div class="atlas-card-coord">X:${config.position.x} Z:${config.position.z}</div>
|
||||||
<div class="atlas-card-action">${actionLabel} →</div>
|
<div class="atlas-card-action">${actionLabel} →</div>
|
||||||
@@ -3122,6 +3137,7 @@ function populateAtlas() {
|
|||||||
document.getElementById('atlas-standby-count').textContent = standbyCount;
|
document.getElementById('atlas-standby-count').textContent = standbyCount;
|
||||||
document.getElementById('atlas-downloaded-count').textContent = downloadedCount;
|
document.getElementById('atlas-downloaded-count').textContent = downloadedCount;
|
||||||
document.getElementById('atlas-total-count').textContent = portals.length;
|
document.getElementById('atlas-total-count').textContent = portals.length;
|
||||||
|
document.getElementById('atlas-ready-count').textContent = readyCount;
|
||||||
|
|
||||||
// Update Bannerlord HUD status
|
// Update Bannerlord HUD status
|
||||||
const bannerlord = portals.find(p => p.config.id === 'bannerlord');
|
const bannerlord = portals.find(p => p.config.id === 'bannerlord');
|
||||||
|
|||||||
102
index.html
102
index.html
@@ -325,6 +325,7 @@
|
|||||||
<span class="status-indicator downloaded"></span> <span id="atlas-downloaded-count">0</span> DOWNLOADED
|
<span class="status-indicator downloaded"></span> <span id="atlas-downloaded-count">0</span> DOWNLOADED
|
||||||
|
|
||||||
<span class="atlas-total">| <span id="atlas-total-count">0</span> WORLDS TOTAL</span>
|
<span class="atlas-total">| <span id="atlas-total-count">0</span> WORLDS TOTAL</span>
|
||||||
|
<span class="status-indicator online"></span> <span id="atlas-ready-count">0</span> INTERACTION READY
|
||||||
</div>
|
</div>
|
||||||
<div class="atlas-hint">Click a world to focus or enter</div>
|
<div class="atlas-hint">Click a world to focus or enter</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -375,6 +376,107 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="branch-policy" style="margin-top: 10px; font-size: 12px; color: #aaa;">
|
||||||
|
<strong>BRANCH PROTECTION POLICY</strong><br>
|
||||||
|
<ul style="margin:0; padding-left:15px;">
|
||||||
|
<li>• Require PR for merge ✅</li>
|
||||||
|
<li>• Require 1 approval ✅</li>
|
||||||
|
<li>• Dismiss stale approvals ✅</li>
|
||||||
|
<li>• Require CI ✅ (where available)</li>
|
||||||
|
<li>• Block force push ✅</li>
|
||||||
|
<li>• Block branch deletion ✅</li>
|
||||||
|
<li>• Weekly audit for unreviewed merges ✅</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="mem-palace-container" class="mem-palace-ui">
|
||||||
|
<div class="mem-palace-header">
|
||||||
|
<span id="mem-palace-status">MEMPALACE</span>
|
||||||
|
<button onclick="mineMemPalaceContent()" class="mem-palace-btn">Mine Chat</button>
|
||||||
|
</div>
|
||||||
|
<div class="mem-palace-stats">
|
||||||
|
<div>Compression: <span id="compression-ratio">--</span>x</div>
|
||||||
|
<div>Docs mined: <span id="docs-mined">0</span></div>
|
||||||
|
<div>AAAK size: <span id="aaak-size">0B</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="mem-palace-logs" id="mem-palace-logs"></div>
|
||||||
|
</div>
|
||||||
|
<div class="default-reviewers" style="margin-top: 8px; font-size: 12px; color: #aaa;">
|
||||||
|
<strong>DEFAULT REVIEWERS</strong><br>
|
||||||
|
<ul style="margin:0; padding-left:15px;">
|
||||||
|
<li>• <span style="color:#4af0c0;">@perplexity</span> (QA gate on all repos)</li>
|
||||||
|
<li>• <span style="color:#7b5cff;">@Timmy</span> (owner gate on hermes-agent)</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="implementation-status" style="margin-top: 10px; font-size: 12px; color: #aaa;">
|
||||||
|
<strong>IMPLEMENTATION STATUS</strong><br>
|
||||||
|
<div style="margin-top: 5px; display: flex; flex-direction: column; gap: 2px;">
|
||||||
|
<div>• <span style="color:#4af0c0;">hermes-agent</span>: Require PR + 1 approval + CI ✅</div>
|
||||||
|
<div>• <span style="color:#7b5cff;">the-nexus</span>: Require PR + 1 approval ⚠️ (CI disabled)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="mem-palace-status" style="position:fixed; right:24px; top:64px; background:rgba(74,240,192,0.1); color:#4af0c0; padding:6px 12px; border-radius:4px; font-family:'Orbitron', sans-serif; font-size:10px; letter-spacing:0.1em;">
|
||||||
|
MEMPALACE INIT
|
||||||
|
</div>
|
||||||
|
<div>• <span style="color:#ffd700;">timmy-home</span>: Require PR + 1 approval ✅</div>
|
||||||
|
<div>• <span style="color:#ab8d00;">timmy-config</span>: Require PR + 1 approval ✅</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="mem-palace-container" class="mem-palace-ui">
|
||||||
|
<div class="mem-palace-header">MemPalace <span id="mem-palace-status">Initializing...</span></div>
|
||||||
|
<div class="mem-palace-stats">
|
||||||
|
<div>Compression: <span id="compression-ratio">--</span>x</div>
|
||||||
|
<div>Docs mined: <span id="docs-mined">0</span></div>
|
||||||
|
<div>AAAK size: <span id="aaak-size">0B</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="mem-palace-actions">
|
||||||
|
<button id="mine-now-btn" class="mem-palace-btn" onclick="mineChatToMemPalace()">Mine Chat</button>
|
||||||
|
<button class="mem-palace-btn" onclick="searchMemPalace()">Search</button>
|
||||||
|
</div>
|
||||||
|
<div id="mem-palace-logs" class="mem-palace-logs"></div>
|
||||||
|
</div>
|
||||||
|
<div id="mem-palace-controls" style="position:fixed; right:24px; top:54px; background:rgba(74,240,192,0.05); padding:4px 8px; font-family:'JetBrains Mono',monospace; font-size:11px; border-left:2px solid #4af0c0;">
|
||||||
|
<button onclick="mineMemPalace()">Mine Chat</button>
|
||||||
|
<button onclick="searchMemPalace()">Search</button>
|
||||||
|
</div>
|
||||||
|
<div id="mempalace-results" style="position:fixed; right:24px; top:84px; max-height:200px; overflow-y:auto; background:rgba(0,0,0,0.3); padding:8px; font-family:'JetBrains Mono',monospace; font-size:11px; color:#e0f0ff; border-left:2px solid #4af0c0;"></div>
|
||||||
|
<div id="mem-palace-controls" style="position:fixed; right:24px; top:54px; background:rgba(74,240,192,0.05); padding:4px 8px; font-family:'JetBrains Mono',monospace; font-size:10px; border-left:2px solid #4af0c0;">
|
||||||
|
<button class="mem-palace-mining-btn" onclick="mineChatToMemPalace()">Mine Chat</button>
|
||||||
|
<button onclick="searchMemPalace()">Search</button>
|
||||||
|
</div>
|
||||||
|
<div id="mempalace-results" style="position:fixed; right:24px; top:84px; max-height:200px; overflow-y:auto; background:rgba(0,0,0,0.3); padding:8px; font-family:'JetBrains Mono',monospace; font-size:11px; color:#e0f0ff; border-left:2px solid #4af0c0;"></div>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
index.html
|
||||||
|
```html
|
||||||
|
|
||||||
|
<div class="branch-policy" style="margin-top: 10px; font-size: 12px; color: #aaa;">
|
||||||
|
<strong>BRANCH PROTECTION POLICY</strong><br>
|
||||||
|
<ul style="margin:0; padding-left:15px;">
|
||||||
|
<li>• Require PR for merge ✅</li>
|
||||||
|
<li>• Require 1 approval ✅</li>
|
||||||
|
<li>• Dismiss stale approvals ✅</li>
|
||||||
|
<li>• Require CI ✅ (where available)</li>
|
||||||
|
<li>• Block force push ✅</li>
|
||||||
|
<li>• Block branch deletion ✅</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="default-reviewers" style="margin-top: 8px;">
|
||||||
|
<strong>DEFAULT REVIEWERS</strong><br>
|
||||||
|
<ul style="margin:0; padding-left:15px;">
|
||||||
|
<li>• <span style="color:#4af0c0;">@perplexity</span> (QA gate on all repos)</li>
|
||||||
|
<li>• <span style="color:#7b5cff;">@Timmy</span> (owner gate on hermes-agent)</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="implementation-status" style="margin-top: 10px;">
|
||||||
|
<strong>IMPLEMENTATION STATUS</strong><br>
|
||||||
|
<div style="margin-top: 5px; display: flex; flex-direction: column; gap: 2px;">
|
||||||
|
<div>• <span style="color:#4af0c0;">hermes-agent</span>: Require PR + 1 approval + CI ✅</div>
|
||||||
|
<div>• <span style="color:#7b5cff;">the-nexus</span>: Require PR + 1 approval ⚠<> (CI disabled)</div>
|
||||||
|
<div>• <span style="color:#ffd700;">timmy-home</span>: Require PR + 1 approval ✅</div>
|
||||||
|
<div>• <span style="color:#ab8d00;">timmy-config</span>: Require PR + 1 approval ✅</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script type="module" src="./app.js"></script>
|
<script type="module" src="./app.js"></script>
|
||||||
|
|||||||
140
portals.json
140
portals.json
@@ -24,12 +24,28 @@
|
|||||||
"owner": "Timmy",
|
"owner": "Timmy",
|
||||||
"app_id": 22320,
|
"app_id": 22320,
|
||||||
"window_title": "OpenMW",
|
"window_title": "OpenMW",
|
||||||
|
"position": {
|
||||||
|
"x": 15,
|
||||||
|
"y": 0,
|
||||||
|
"z": -10
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"y": -0.5
|
||||||
|
},
|
||||||
"destination": {
|
"destination": {
|
||||||
"url": null,
|
"url": null,
|
||||||
"type": "harness",
|
"type": "harness",
|
||||||
"action_label": "Enter Vvardenfell",
|
"action_label": "Enter Vvardenfell",
|
||||||
"params": { "world": "vvardenfell" }
|
"params": { "world": "vvardenfell" }
|
||||||
}
|
}
|
||||||
|
"params": {
|
||||||
|
"world": "vvardenfell"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"agents_present": [
|
||||||
|
"timmy"
|
||||||
|
],
|
||||||
|
"interaction_ready": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "bannerlord",
|
"id": "bannerlord",
|
||||||
@@ -40,16 +56,36 @@
|
|||||||
"role": "pilot",
|
"role": "pilot",
|
||||||
"position": { "x": -15, "y": 0, "z": -10 },
|
"position": { "x": -15, "y": 0, "z": -10 },
|
||||||
"rotation": { "y": 0.5 },
|
"rotation": { "y": 0.5 },
|
||||||
|
"position": {
|
||||||
|
"x": -15,
|
||||||
|
"y": 0,
|
||||||
|
"z": -10
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"y": 0.5
|
||||||
|
},
|
||||||
"portal_type": "game-world",
|
"portal_type": "game-world",
|
||||||
"world_category": "strategy-rpg",
|
"world_category": "strategy-rpg",
|
||||||
"environment": "production",
|
"environment": "production",
|
||||||
"access_mode": "operator",
|
"access_mode": "operator",
|
||||||
"readiness_state": "downloaded",
|
"readiness_state": "downloaded",
|
||||||
"readiness_steps": {
|
"readiness_steps": {
|
||||||
"downloaded": { "label": "Downloaded", "done": true },
|
"downloaded": {
|
||||||
"runtime_ready": { "label": "Runtime Ready", "done": false },
|
"label": "Downloaded",
|
||||||
"launched": { "label": "Launched", "done": false },
|
"done": true
|
||||||
"harness_bridged": { "label": "Harness Bridged", "done": false }
|
},
|
||||||
|
"runtime_ready": {
|
||||||
|
"label": "Runtime Ready",
|
||||||
|
"done": false
|
||||||
|
},
|
||||||
|
"launched": {
|
||||||
|
"label": "Launched",
|
||||||
|
"done": false
|
||||||
|
},
|
||||||
|
"harness_bridged": {
|
||||||
|
"label": "Harness Bridged",
|
||||||
|
"done": false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"blocked_reason": null,
|
"blocked_reason": null,
|
||||||
"telemetry_source": "hermes-harness:bannerlord",
|
"telemetry_source": "hermes-harness:bannerlord",
|
||||||
@@ -60,8 +96,12 @@
|
|||||||
"url": null,
|
"url": null,
|
||||||
"type": "harness",
|
"type": "harness",
|
||||||
"action_label": "Enter Calradia",
|
"action_label": "Enter Calradia",
|
||||||
"params": { "world": "calradia" }
|
"params": {
|
||||||
}
|
"world": "calradia"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"agents_present": [],
|
||||||
|
"interaction_ready": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "workshop",
|
"id": "workshop",
|
||||||
@@ -72,11 +112,26 @@
|
|||||||
"role": "timmy",
|
"role": "timmy",
|
||||||
"position": { "x": 0, "y": 0, "z": -20 },
|
"position": { "x": 0, "y": 0, "z": -20 },
|
||||||
"rotation": { "y": 0 },
|
"rotation": { "y": 0 },
|
||||||
|
"position": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": -20
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
"destination": {
|
"destination": {
|
||||||
"url": "https://workshop.timmy.foundation",
|
"url": "https://workshop.timmy.foundation",
|
||||||
"type": "harness",
|
"type": "harness",
|
||||||
"params": { "mode": "creative" }
|
"params": {
|
||||||
}
|
"mode": "creative"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"agents_present": [
|
||||||
|
"timmy",
|
||||||
|
"kimi"
|
||||||
|
],
|
||||||
|
"interaction_ready": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "archive",
|
"id": "archive",
|
||||||
@@ -87,11 +142,25 @@
|
|||||||
"role": "timmy",
|
"role": "timmy",
|
||||||
"position": { "x": 25, "y": 0, "z": 0 },
|
"position": { "x": 25, "y": 0, "z": 0 },
|
||||||
"rotation": { "y": -1.57 },
|
"rotation": { "y": -1.57 },
|
||||||
|
"position": {
|
||||||
|
"x": 25,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"y": -1.57
|
||||||
|
},
|
||||||
"destination": {
|
"destination": {
|
||||||
"url": "https://archive.timmy.foundation",
|
"url": "https://archive.timmy.foundation",
|
||||||
"type": "harness",
|
"type": "harness",
|
||||||
"params": { "mode": "read" }
|
"params": {
|
||||||
}
|
"mode": "read"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"agents_present": [
|
||||||
|
"claude"
|
||||||
|
],
|
||||||
|
"interaction_ready": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "chapel",
|
"id": "chapel",
|
||||||
@@ -102,11 +171,23 @@
|
|||||||
"role": "timmy",
|
"role": "timmy",
|
||||||
"position": { "x": -25, "y": 0, "z": 0 },
|
"position": { "x": -25, "y": 0, "z": 0 },
|
||||||
"rotation": { "y": 1.57 },
|
"rotation": { "y": 1.57 },
|
||||||
|
"position": {
|
||||||
|
"x": -25,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"y": 1.57
|
||||||
|
},
|
||||||
"destination": {
|
"destination": {
|
||||||
"url": "https://chapel.timmy.foundation",
|
"url": "https://chapel.timmy.foundation",
|
||||||
"type": "harness",
|
"type": "harness",
|
||||||
"params": { "mode": "meditation" }
|
"params": {
|
||||||
}
|
"mode": "meditation"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"agents_present": [],
|
||||||
|
"interaction_ready": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "courtyard",
|
"id": "courtyard",
|
||||||
@@ -117,11 +198,26 @@
|
|||||||
"role": "reflex",
|
"role": "reflex",
|
||||||
"position": { "x": 15, "y": 0, "z": 10 },
|
"position": { "x": 15, "y": 0, "z": 10 },
|
||||||
"rotation": { "y": -2.5 },
|
"rotation": { "y": -2.5 },
|
||||||
|
"position": {
|
||||||
|
"x": 15,
|
||||||
|
"y": 0,
|
||||||
|
"z": 10
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"y": -2.5
|
||||||
|
},
|
||||||
"destination": {
|
"destination": {
|
||||||
"url": "https://courtyard.timmy.foundation",
|
"url": "https://courtyard.timmy.foundation",
|
||||||
"type": "harness",
|
"type": "harness",
|
||||||
"params": { "mode": "social" }
|
"params": {
|
||||||
}
|
"mode": "social"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"agents_present": [
|
||||||
|
"timmy",
|
||||||
|
"perplexity"
|
||||||
|
],
|
||||||
|
"interaction_ready": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "gate",
|
"id": "gate",
|
||||||
@@ -132,10 +228,22 @@
|
|||||||
"role": "reflex",
|
"role": "reflex",
|
||||||
"position": { "x": -15, "y": 0, "z": 10 },
|
"position": { "x": -15, "y": 0, "z": 10 },
|
||||||
"rotation": { "y": 2.5 },
|
"rotation": { "y": 2.5 },
|
||||||
|
"position": {
|
||||||
|
"x": -15,
|
||||||
|
"y": 0,
|
||||||
|
"z": 10
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"y": 2.5
|
||||||
|
},
|
||||||
"destination": {
|
"destination": {
|
||||||
"url": "https://gate.timmy.foundation",
|
"url": "https://gate.timmy.foundation",
|
||||||
"type": "harness",
|
"type": "harness",
|
||||||
"params": { "mode": "transit" }
|
"params": {
|
||||||
}
|
"mode": "transit"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"agents_present": [],
|
||||||
|
"interaction_ready": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
28
style.css
28
style.css
@@ -372,7 +372,33 @@ canvas#nexus-canvas {
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: var(--color-text-muted);
|
color: var(--color-text-muted);
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.atlas-card-presence {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
padding: 6px 8px;
|
||||||
|
background: rgba(0, 0, 0, 0.25);
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid rgba(160, 184, 208, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.atlas-card-agents {
|
||||||
|
font-size: 11px;
|
||||||
|
font-family: var(--font-body);
|
||||||
|
color: var(--color-text-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.atlas-card-ready {
|
||||||
|
font-size: 9px;
|
||||||
|
font-family: var(--font-body);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
padding: 2px 6px;
|
||||||
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.atlas-card-footer {
|
.atlas-card-footer {
|
||||||
|
|||||||
Reference in New Issue
Block a user