Merge pull request #338 from PR0M3TH3AN/jules-detect-active-agent-platforms-2907459520034809113

Add dashboard support for Goose, Gemini, and Antigravity platforms
This commit is contained in:
thePR0M3TH3AN authored and GitHub committed 2026-02-19 16:40:27 -05:00
commit f1d4e0534c
4 files changed
+53

No files matched your search

+15
View File
@@ -383,6 +383,21 @@ const PLATFORM_COLORS = {
text: 'text-success',
label: 'Codex',
},
goose: {
bg: 'bg-purple/10',
text: 'text-purple',
label: 'Goose',
},
gemini: {
bg: 'bg-accent/10',
text: 'text-accent',
label: 'Gemini CLI',
},
antigravity: {
bg: 'bg-pink/10',
text: 'text-pink',
label: 'Antigravity IDE',
},
unknown: { bg: 'bg-muted/10', text: 'text-muted', label: 'Unknown' },
};
+8
View File
@@ -12,6 +12,8 @@
--success: #35c47c;
--warning: #f5b84b;
--danger: #ff6b6b;
--purple: #a855f7;
--pink: #ec4899;
}
* { box-sizing: border-box; }
@@ -69,6 +71,9 @@ a { color: inherit; }
.bg-danger { background-color: var(--danger); }
.bg-danger\/10 { background-color: color-mix(in srgb, var(--danger) 10%, transparent); }
.bg-info\/10 { background-color: color-mix(in srgb, var(--info) 10%, transparent); }
.bg-accent\/10 { background-color: color-mix(in srgb, var(--accent) 10%, transparent); }
.bg-purple\/10 { background-color: color-mix(in srgb, var(--purple) 10%, transparent); }
.bg-pink\/10 { background-color: color-mix(in srgb, var(--pink) 10%, transparent); }
.bg-border\/30 { background-color: color-mix(in srgb, var(--border) 30%, transparent); }
.text-text { color: var(--text); }
@@ -76,10 +81,13 @@ a { color: inherit; }
.text-muted { color: var(--muted); }
.text-info { color: var(--info); }
.text-info-strong { color: var(--info-strong); }
.text-accent { color: var(--accent); }
.text-accent-strong { color: var(--accent); }
.text-success { color: var(--success); }
.text-warning { color: var(--warning); }
.text-danger { color: var(--danger); }
.text-purple { color: var(--purple); }
.text-pink { color: var(--pink); }
.text-white { color: #fff; }
.border { border-width: 1px; border-style: solid; }
+2
View File
@@ -36,6 +36,8 @@ export function detectPlatform() {
if (process.env.CODEX_API_KEY || process.env.CODEX_SESSION_ID) return 'codex';
if (process.env.GOOSE_API_KEY || process.env.GOOSE_SESSION_ID) return 'goose';
if (process.env.CLAUDE_API_KEY || process.env.ANTHROPIC_API_KEY || process.env.CLAUDE_SESSION_ID) return 'claude';
if (process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY) return 'gemini';
if (process.env.ANTIGRAVITY_API_KEY || process.env.ANTIGRAVITY_SESSION_ID) return 'antigravity';
return null;
}
+28
View File
@@ -74,6 +74,10 @@ describe('Platform Utilities', () => {
delete process.env.CLAUDE_SESSION_ID;
delete process.env.CLAUDE_API_KEY;
delete process.env.ANTHROPIC_API_KEY;
delete process.env.GEMINI_API_KEY;
delete process.env.GOOGLE_API_KEY;
delete process.env.ANTIGRAVITY_API_KEY;
delete process.env.ANTIGRAVITY_SESSION_ID;
};
after(() => {
@@ -110,6 +114,30 @@ describe('Platform Utilities', () => {
assert.strictEqual(detectPlatform(), 'claude');
});
it('detects gemini via GEMINI_API_KEY', () => {
clearEnv();
process.env.GEMINI_API_KEY = 'test';
assert.strictEqual(detectPlatform(), 'gemini');
});
it('detects gemini via GOOGLE_API_KEY', () => {
clearEnv();
process.env.GOOGLE_API_KEY = 'test';
assert.strictEqual(detectPlatform(), 'gemini');
});
it('detects antigravity via ANTIGRAVITY_API_KEY', () => {
clearEnv();
process.env.ANTIGRAVITY_API_KEY = 'test';
assert.strictEqual(detectPlatform(), 'antigravity');
});
it('detects antigravity via ANTIGRAVITY_SESSION_ID', () => {
clearEnv();
process.env.ANTIGRAVITY_SESSION_ID = 'test';
assert.strictEqual(detectPlatform(), 'antigravity');
});
it('returns null if no platform detected', () => {
clearEnv();
assert.strictEqual(detectPlatform(), null);