opencode-antigravity-config 1.0.3 → 1.0.4
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/i18n.js +4 -0
- package/index.html +404 -402
- package/main.js +13 -2
- package/package.json +1 -1
- package/preload.js +3 -1
- package/renderer.js +3 -1
package/i18n.js
CHANGED
|
@@ -55,6 +55,8 @@ const translations = {
|
|
|
55
55
|
'🚀 Next Steps': { EN: '🚀 Next Steps', ID: '🚀 Langkah Berikut' },
|
|
56
56
|
'📂 Config': { EN: '📂 Config', ID: '📂 Buka Config' },
|
|
57
57
|
'🔑 Auth': { EN: '🔑 Auth', ID: '🔑 Login' },
|
|
58
|
+
'💻 CLI': { EN: '💻 CLI', ID: '💻 CLI' },
|
|
59
|
+
'🌐 Web': { EN: '🌐 Web', ID: '🌐 Web 8080' },
|
|
58
60
|
'Close': { EN: 'Close', ID: 'Tutup' },
|
|
59
61
|
|
|
60
62
|
// Modals & Dynamic
|
|
@@ -149,6 +151,8 @@ const tMap = [
|
|
|
149
151
|
{ selector: '#page5 .purple-label', key: '🚀 Next Steps' },
|
|
150
152
|
{ selector: '#btnOpenFolder', key: '📂 Config' },
|
|
151
153
|
{ selector: '#btnAuthLogin', key: '🔑 Auth' },
|
|
154
|
+
{ selector: '#btnRunCLI', key: '💻 CLI' },
|
|
155
|
+
{ selector: '#btnRunWeb', key: '🌐 Web' },
|
|
152
156
|
{ selector: '#btnFinish', key: 'Close' }
|
|
153
157
|
];
|
|
154
158
|
|
package/index.html
CHANGED
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="UTF-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
-
<title>Opencode Antigravity Config</title>
|
|
8
|
-
<meta http-equiv="Content-Security-Policy"
|
|
9
|
-
content="script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; font-src 'self';">
|
|
10
|
-
<link rel="stylesheet" href="node_modules/@fontsource/fira-code/400.css">
|
|
11
|
-
<link rel="stylesheet" href="node_modules/@fontsource/fira-code/600.css">
|
|
12
|
-
<link rel="stylesheet" href="styles.css">
|
|
13
|
-
</head>
|
|
14
|
-
|
|
15
|
-
<body>
|
|
16
|
-
<div class="window-container">
|
|
17
|
-
<div class="title-bar" id="titleBar">
|
|
18
|
-
<div class="title-left">
|
|
19
|
-
<img src="app.png" class="icon" alt="Ag Icon">
|
|
20
|
-
<span class="title-text">Opencode Antigravity Config</span>
|
|
21
|
-
<span class="version-text">v1.0.0</span>
|
|
22
|
-
</div>
|
|
23
|
-
<div class="window-controls">
|
|
24
|
-
<button id="btnLang" class="control-btn lang-btn" title="Toggle Language">ID / EN</button>
|
|
25
|
-
<div class="divider-v"></div>
|
|
26
|
-
<button id="btnMinimize" class="control-btn minimize" title="Minimize">─</button>
|
|
27
|
-
<button id="btnClose" class="control-btn close" title="Close">✕</button>
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
|
-
<div class="step-indicator">
|
|
31
|
-
<div class="step active" id="step0">
|
|
32
|
-
<div class="dot"></div><span>Welcome</span>
|
|
33
|
-
</div>
|
|
34
|
-
<div class="step" id="step1">
|
|
35
|
-
<div class="dot"></div><span>oMo Model</span>
|
|
36
|
-
</div>
|
|
37
|
-
<div class="step" id="step2">
|
|
38
|
-
<div class="dot"></div><span>System</span>
|
|
39
|
-
</div>
|
|
40
|
-
<div class="step" id="step3">
|
|
41
|
-
<div class="dot"></div><span>Config</span>
|
|
42
|
-
</div>
|
|
43
|
-
<div class="step" id="step4">
|
|
44
|
-
<div class="dot"></div><span>Install</span>
|
|
45
|
-
</div>
|
|
46
|
-
<div class="step" id="step5">
|
|
47
|
-
<div class="dot"></div><span>Done</span>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="content-area">
|
|
51
|
-
<!-- PAGE 0: WELCOME -->
|
|
52
|
-
<div id="page0" class="page active">
|
|
53
|
-
<div class="center-content">
|
|
54
|
-
<img src="app.png" class="hero-icon" alt="Ag Icon">
|
|
55
|
-
<h1>Opencode Antigravity</h1>
|
|
56
|
-
<h2 class="cyan-text">Config</h2>
|
|
57
|
-
<p class="subtitle">Install konfigurasi lengkap Opencode Antigravity stack:</p>
|
|
58
|
-
<span class="config-meta" id="configMetaText">Loading...</span>
|
|
59
|
-
<div class="welcome-actions"><button class="btn primary" id="btnStart">Get Started →</button></div>
|
|
60
|
-
<div class="welcome-secondary">
|
|
61
|
-
<button class="btn secondary btn-sm" id="btnVersionCheck">🔄 Updates</button>
|
|
62
|
-
<button class="btn secondary btn-sm btn-danger" id="btnUninstall">🗑 Uninstall</button>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
<!-- PAGE 1: OMO CONFIG -->
|
|
68
|
-
<div id="page1" class="page">
|
|
69
|
-
<div class="page-header">
|
|
70
|
-
<h2>oMo Agent Model</h2>
|
|
71
|
-
<p>Konfigurasi model AI untuk setiap agent</p>
|
|
72
|
-
</div>
|
|
73
|
-
<div class="scroll-area" style="padding:15px 0;">
|
|
74
|
-
<div id="agentModelPanel" class="agent-panel">
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Opencode Antigravity Config</title>
|
|
8
|
+
<meta http-equiv="Content-Security-Policy"
|
|
9
|
+
content="script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; font-src 'self';">
|
|
10
|
+
<link rel="stylesheet" href="node_modules/@fontsource/fira-code/400.css">
|
|
11
|
+
<link rel="stylesheet" href="node_modules/@fontsource/fira-code/600.css">
|
|
12
|
+
<link rel="stylesheet" href="styles.css">
|
|
13
|
+
</head>
|
|
14
|
+
|
|
15
|
+
<body>
|
|
16
|
+
<div class="window-container">
|
|
17
|
+
<div class="title-bar" id="titleBar">
|
|
18
|
+
<div class="title-left">
|
|
19
|
+
<img src="app.png" class="icon" alt="Ag Icon">
|
|
20
|
+
<span class="title-text">Opencode Antigravity Config</span>
|
|
21
|
+
<span class="version-text">v1.0.0</span>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="window-controls">
|
|
24
|
+
<button id="btnLang" class="control-btn lang-btn" title="Toggle Language">ID / EN</button>
|
|
25
|
+
<div class="divider-v"></div>
|
|
26
|
+
<button id="btnMinimize" class="control-btn minimize" title="Minimize">─</button>
|
|
27
|
+
<button id="btnClose" class="control-btn close" title="Close">✕</button>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="step-indicator">
|
|
31
|
+
<div class="step active" id="step0">
|
|
32
|
+
<div class="dot"></div><span>Welcome</span>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="step" id="step1">
|
|
35
|
+
<div class="dot"></div><span>oMo Model</span>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="step" id="step2">
|
|
38
|
+
<div class="dot"></div><span>System</span>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="step" id="step3">
|
|
41
|
+
<div class="dot"></div><span>Config</span>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="step" id="step4">
|
|
44
|
+
<div class="dot"></div><span>Install</span>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="step" id="step5">
|
|
47
|
+
<div class="dot"></div><span>Done</span>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="content-area">
|
|
51
|
+
<!-- PAGE 0: WELCOME -->
|
|
52
|
+
<div id="page0" class="page active">
|
|
53
|
+
<div class="center-content">
|
|
54
|
+
<img src="app.png" class="hero-icon" alt="Ag Icon">
|
|
55
|
+
<h1>Opencode Antigravity</h1>
|
|
56
|
+
<h2 class="cyan-text">Config</h2>
|
|
57
|
+
<p class="subtitle">Install konfigurasi lengkap Opencode Antigravity stack:</p>
|
|
58
|
+
<span class="config-meta" id="configMetaText">Loading...</span>
|
|
59
|
+
<div class="welcome-actions"><button class="btn primary" id="btnStart">Get Started →</button></div>
|
|
60
|
+
<div class="welcome-secondary">
|
|
61
|
+
<button class="btn secondary btn-sm" id="btnVersionCheck">🔄 Updates</button>
|
|
62
|
+
<button class="btn secondary btn-sm btn-danger" id="btnUninstall">🗑 Uninstall</button>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<!-- PAGE 1: OMO CONFIG -->
|
|
68
|
+
<div id="page1" class="page">
|
|
69
|
+
<div class="page-header">
|
|
70
|
+
<h2>oMo Agent Model</h2>
|
|
71
|
+
<p>Konfigurasi model AI untuk setiap agent</p>
|
|
72
|
+
</div>
|
|
73
|
+
<div class="scroll-area" style="padding:15px 0;">
|
|
74
|
+
<div id="agentModelPanel" class="agent-panel">
|
|
75
75
|
<div class="agent-panel-header">
|
|
76
76
|
<h3>🤖 oMo Agents — AI Model</h3>
|
|
77
77
|
<div style="display:flex; gap:10px; align-items:center;">
|
|
@@ -85,340 +85,342 @@
|
|
|
85
85
|
</select>
|
|
86
86
|
<button type="button" id="btnAgentAdvanced" class="btn secondary btn-agent-toggle">⚙ Advanced</button>
|
|
87
87
|
</div>
|
|
88
|
-
</div>
|
|
89
|
-
|
|
90
|
-
<!-- GROUP MODE (default) -->
|
|
91
|
-
<div id="agentGroupMode">
|
|
92
|
-
<div class="agent-group-row" style="border-left-color: #e74c3c;">
|
|
93
|
-
<div class="agent-group-info">
|
|
94
|
-
<span class="agent-group-name">🧠 Heavy</span>
|
|
95
|
-
<span class="agent-group-members">Sisyphus, Prometheus, Metis, Oracle</span>
|
|
96
|
-
</div>
|
|
97
|
-
<select id="selGroupHeavy" class="agent-model-select">
|
|
98
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<!-- GROUP MODE (default) -->
|
|
91
|
+
<div id="agentGroupMode">
|
|
92
|
+
<div class="agent-group-row" style="border-left-color: #e74c3c;">
|
|
93
|
+
<div class="agent-group-info">
|
|
94
|
+
<span class="agent-group-name">🧠 Heavy</span>
|
|
95
|
+
<span class="agent-group-members">Sisyphus, Prometheus, Metis, Oracle</span>
|
|
96
|
+
</div>
|
|
97
|
+
<select id="selGroupHeavy" class="agent-model-select">
|
|
98
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
99
99
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
100
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
101
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
102
|
-
Think</option>
|
|
103
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
104
|
-
</option>
|
|
105
|
-
</select>
|
|
106
|
-
</div>
|
|
107
|
-
<div class="agent-group-row" style="border-left-color: #f39c12;">
|
|
108
|
-
<div class="agent-group-info">
|
|
109
|
-
<span class="agent-group-name">⚙️ Standard</span>
|
|
110
|
-
<span class="agent-group-members">Hephaestus, Momus, Atlas</span>
|
|
111
|
-
</div>
|
|
112
|
-
<select id="selGroupStandard" class="agent-model-select">
|
|
113
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
100
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
101
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
102
|
+
Think</option>
|
|
103
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
104
|
+
</option>
|
|
105
|
+
</select>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="agent-group-row" style="border-left-color: #f39c12;">
|
|
108
|
+
<div class="agent-group-info">
|
|
109
|
+
<span class="agent-group-name">⚙️ Standard</span>
|
|
110
|
+
<span class="agent-group-members">Hephaestus, Momus, Atlas</span>
|
|
111
|
+
</div>
|
|
112
|
+
<select id="selGroupStandard" class="agent-model-select">
|
|
113
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
114
114
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
115
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
116
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
117
|
-
Think</option>
|
|
118
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
119
|
-
</option>
|
|
120
|
-
</select>
|
|
121
|
-
</div>
|
|
122
|
-
<div class="agent-group-row" style="border-left-color: #3498db;">
|
|
123
|
-
<div class="agent-group-info">
|
|
124
|
-
<span class="agent-group-name">⚡ Light</span>
|
|
125
|
-
<span class="agent-group-members">Librarian, Explore, Multimodal-Looker</span>
|
|
126
|
-
</div>
|
|
127
|
-
<select id="selGroupLight" class="agent-model-select">
|
|
128
|
-
<option value="google/antigravity-gemini-3-flash" selected>Gemini 3 Flash</option>
|
|
129
|
-
<option value="google/antigravity-gemini-3-1-pro">Gemini 3.1 Pro</option>
|
|
130
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
131
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
132
|
-
Think</option>
|
|
133
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
134
|
-
</option>
|
|
135
|
-
</select>
|
|
136
|
-
</div>
|
|
137
|
-
</div>
|
|
138
|
-
|
|
139
|
-
<!-- ADVANCED MODE (per-agent, hidden by default) -->
|
|
140
|
-
<div id="agentAdvancedMode" style="display:none;">
|
|
141
|
-
<div class="agent-adv-section" style="border-left-color:#e74c3c;">🧠 Heavy Group</div>
|
|
142
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Sisyphus
|
|
143
|
-
<i>(Orchestrator)</i></span><select id="selAgent_sisyphus"
|
|
144
|
-
class="agent-model-select agent-adv-select" data-group="heavy">
|
|
145
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
115
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
116
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
117
|
+
Think</option>
|
|
118
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
119
|
+
</option>
|
|
120
|
+
</select>
|
|
121
|
+
</div>
|
|
122
|
+
<div class="agent-group-row" style="border-left-color: #3498db;">
|
|
123
|
+
<div class="agent-group-info">
|
|
124
|
+
<span class="agent-group-name">⚡ Light</span>
|
|
125
|
+
<span class="agent-group-members">Librarian, Explore, Multimodal-Looker</span>
|
|
126
|
+
</div>
|
|
127
|
+
<select id="selGroupLight" class="agent-model-select">
|
|
128
|
+
<option value="google/antigravity-gemini-3-flash" selected>Gemini 3 Flash</option>
|
|
129
|
+
<option value="google/antigravity-gemini-3-1-pro">Gemini 3.1 Pro</option>
|
|
130
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
131
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
132
|
+
Think</option>
|
|
133
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
134
|
+
</option>
|
|
135
|
+
</select>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<!-- ADVANCED MODE (per-agent, hidden by default) -->
|
|
140
|
+
<div id="agentAdvancedMode" style="display:none;">
|
|
141
|
+
<div class="agent-adv-section" style="border-left-color:#e74c3c;">🧠 Heavy Group</div>
|
|
142
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Sisyphus
|
|
143
|
+
<i>(Orchestrator)</i></span><select id="selAgent_sisyphus"
|
|
144
|
+
class="agent-model-select agent-adv-select" data-group="heavy">
|
|
145
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
146
146
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
147
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
148
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
149
|
-
Think</option>
|
|
150
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
151
|
-
</option>
|
|
152
|
-
</select></div>
|
|
153
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Prometheus
|
|
154
|
-
<i>(Builder)</i></span><select id="selAgent_prometheus"
|
|
155
|
-
class="agent-model-select agent-adv-select" data-group="heavy">
|
|
156
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
147
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
148
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
149
|
+
Think</option>
|
|
150
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
151
|
+
</option>
|
|
152
|
+
</select></div>
|
|
153
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Prometheus
|
|
154
|
+
<i>(Builder)</i></span><select id="selAgent_prometheus"
|
|
155
|
+
class="agent-model-select agent-adv-select" data-group="heavy">
|
|
156
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
157
157
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
158
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
159
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
160
|
-
Think</option>
|
|
161
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
162
|
-
</option>
|
|
163
|
-
</select></div>
|
|
164
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Metis <i>(Coder)</i></span><select
|
|
165
|
-
id="selAgent_metis" class="agent-model-select agent-adv-select" data-group="heavy">
|
|
166
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
158
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
159
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
160
|
+
Think</option>
|
|
161
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
162
|
+
</option>
|
|
163
|
+
</select></div>
|
|
164
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Metis <i>(Coder)</i></span><select
|
|
165
|
+
id="selAgent_metis" class="agent-model-select agent-adv-select" data-group="heavy">
|
|
166
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
167
167
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
168
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
169
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
170
|
-
Think</option>
|
|
171
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
172
|
-
</option>
|
|
173
|
-
</select></div>
|
|
174
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Oracle
|
|
175
|
-
<i>(Analyst)</i></span><select id="selAgent_oracle"
|
|
176
|
-
class="agent-model-select agent-adv-select" data-group="heavy">
|
|
177
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
168
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
169
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
170
|
+
Think</option>
|
|
171
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
172
|
+
</option>
|
|
173
|
+
</select></div>
|
|
174
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Oracle
|
|
175
|
+
<i>(Analyst)</i></span><select id="selAgent_oracle"
|
|
176
|
+
class="agent-model-select agent-adv-select" data-group="heavy">
|
|
177
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
178
178
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
179
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
180
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
181
|
-
Think</option>
|
|
182
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
183
|
-
</option>
|
|
184
|
-
</select></div>
|
|
185
|
-
|
|
186
|
-
<div class="agent-adv-section" style="border-left-color:#f39c12;">⚙️ Standard Group</div>
|
|
187
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Hephaestus
|
|
188
|
-
<i>(Coder)</i></span><select id="selAgent_hephaestus"
|
|
189
|
-
class="agent-model-select agent-adv-select" data-group="standard">
|
|
190
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
179
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
180
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
181
|
+
Think</option>
|
|
182
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
183
|
+
</option>
|
|
184
|
+
</select></div>
|
|
185
|
+
|
|
186
|
+
<div class="agent-adv-section" style="border-left-color:#f39c12;">⚙️ Standard Group</div>
|
|
187
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Hephaestus
|
|
188
|
+
<i>(Coder)</i></span><select id="selAgent_hephaestus"
|
|
189
|
+
class="agent-model-select agent-adv-select" data-group="standard">
|
|
190
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
191
191
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
192
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
193
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
194
|
-
Think</option>
|
|
195
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
196
|
-
</option>
|
|
197
|
-
</select></div>
|
|
198
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Momus
|
|
199
|
-
<i>(Reviewer)</i></span><select id="selAgent_momus"
|
|
200
|
-
class="agent-model-select agent-adv-select" data-group="standard">
|
|
201
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
192
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
193
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
194
|
+
Think</option>
|
|
195
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
196
|
+
</option>
|
|
197
|
+
</select></div>
|
|
198
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Momus
|
|
199
|
+
<i>(Reviewer)</i></span><select id="selAgent_momus"
|
|
200
|
+
class="agent-model-select agent-adv-select" data-group="standard">
|
|
201
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
202
202
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
203
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
204
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
205
|
-
Think</option>
|
|
206
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
207
|
-
</option>
|
|
208
|
-
</select></div>
|
|
209
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Atlas <i>(Worker)</i></span><select
|
|
210
|
-
id="selAgent_atlas" class="agent-model-select agent-adv-select"
|
|
211
|
-
data-group="standard">
|
|
212
|
-
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
203
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
204
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
205
|
+
Think</option>
|
|
206
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
207
|
+
</option>
|
|
208
|
+
</select></div>
|
|
209
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Atlas <i>(Worker)</i></span><select
|
|
210
|
+
id="selAgent_atlas" class="agent-model-select agent-adv-select"
|
|
211
|
+
data-group="standard">
|
|
212
|
+
<option value="google/antigravity-gemini-3-1-pro" selected>Gemini 3.1 Pro</option>
|
|
213
213
|
<option value="google/antigravity-gemini-3-flash">Gemini 3 Flash</option>
|
|
214
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
215
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
216
|
-
Think</option>
|
|
217
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
218
|
-
</option>
|
|
219
|
-
</select></div>
|
|
220
|
-
|
|
221
|
-
<div class="agent-adv-section" style="border-left-color:#3498db;">⚡ Light Group</div>
|
|
222
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Librarian
|
|
223
|
-
<i>(Research)</i></span><select id="selAgent_librarian"
|
|
224
|
-
class="agent-model-select agent-adv-select" data-group="light">
|
|
225
|
-
<option value="google/antigravity-gemini-3-flash" selected>Gemini 3 Flash</option>
|
|
226
|
-
<option value="google/antigravity-gemini-3-1-pro">Gemini 3.1 Pro</option>
|
|
227
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
228
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
229
|
-
Think</option>
|
|
230
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
231
|
-
</option>
|
|
232
|
-
</select></div>
|
|
233
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Explore <i>(Scout)</i></span><select
|
|
234
|
-
id="selAgent_explore" class="agent-model-select agent-adv-select"
|
|
235
|
-
data-group="light">
|
|
236
|
-
<option value="google/antigravity-gemini-3-flash" selected>Gemini 3 Flash</option>
|
|
237
|
-
<option value="google/antigravity-gemini-3-1-pro">Gemini 3.1 Pro</option>
|
|
238
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
239
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
240
|
-
Think</option>
|
|
241
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
242
|
-
</option>
|
|
243
|
-
</select></div>
|
|
244
|
-
<div class="agent-adv-row"><span class="agent-adv-name">Multimodal-Looker
|
|
245
|
-
<i>(Vision)</i></span><select id="selAgent_multimodal_looker"
|
|
246
|
-
class="agent-model-select agent-adv-select" data-group="light">
|
|
247
|
-
<option value="google/antigravity-gemini-3-flash" selected>Gemini 3 Flash</option>
|
|
248
|
-
<option value="google/antigravity-gemini-3-1-pro">Gemini 3.1 Pro</option>
|
|
249
|
-
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
250
|
-
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
251
|
-
Think</option>
|
|
252
|
-
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
253
|
-
</option>
|
|
254
|
-
</select></div>
|
|
255
|
-
</div>
|
|
256
|
-
</div>
|
|
257
|
-
</div>
|
|
258
|
-
<div class="page-footer">
|
|
259
|
-
<button class="btn secondary" id="btnPrev1">← Back</button>
|
|
260
|
-
<div style="flex:1"></div>
|
|
261
|
-
<button class="btn primary" id="btnNext1">Continue →</button>
|
|
262
|
-
</div>
|
|
263
|
-
</div>
|
|
264
|
-
<!-- PAGE 2: SYSTEM CHECK -->
|
|
265
|
-
<div id="page2" class="page">
|
|
266
|
-
<div class="page-header">
|
|
267
|
-
<h2>System Check</h2>
|
|
268
|
-
<p>Checking environment...</p>
|
|
269
|
-
</div>
|
|
270
|
-
<div class="scroll-area" id="prereqPanel"></div>
|
|
271
|
-
<div class="page-footer">
|
|
272
|
-
<button class="btn secondary" id="btnRecheck">🔄 Re-check</button>
|
|
273
|
-
<div style="flex:1"></div>
|
|
274
|
-
<button class="btn secondary" id="btnPrev2">← Back</button>
|
|
275
|
-
<button class="btn primary disabled" id="btnNext2" disabled>Continue →</button>
|
|
276
|
-
</div>
|
|
277
|
-
</div>
|
|
278
|
-
<!-- PAGE 3: CONFIG -->
|
|
279
|
-
<div id="page3" class="page">
|
|
280
|
-
<div class="page-header">
|
|
281
|
-
<div class="header-row">
|
|
282
|
-
<div>
|
|
283
|
-
<h2>Configuration</h2>
|
|
284
|
-
<p>API Keys & file selection</p>
|
|
285
|
-
</div>
|
|
286
|
-
<div class="header-actions">
|
|
287
|
-
<button class="btn secondary btn-xs" id="btnImport">📥 Import</button>
|
|
288
|
-
<button class="btn secondary btn-xs" id="btnExport">📤 Export</button>
|
|
289
|
-
</div>
|
|
290
|
-
</div>
|
|
291
|
-
</div>
|
|
292
|
-
<div class="scroll-area">
|
|
293
|
-
<div class="form-group">
|
|
294
|
-
<div class="label-row">
|
|
295
|
-
<label class="cyan-label">PLUGINS <span id="pluginCount"
|
|
296
|
-
style="color:var(--t2);font-weight:normal;font-size:10px;margin-left:4px">3/7</span></label>
|
|
297
|
-
<span class="file-actions">
|
|
298
|
-
<a id="btnPluginAll" class="link-btn">All</a><span class="link-sep">|</span><a
|
|
299
|
-
id="btnPluginNone" class="link-btn">None</a>
|
|
300
|
-
</span>
|
|
301
|
-
</div>
|
|
302
|
-
<div class="plugin-grid" id="pluginGrid">
|
|
303
|
-
<div class="plugin-group-title" id="lblCorePlugins">🔒 Core (Required)</div>
|
|
304
|
-
<div class="plugin-row core-plugin"><label class="modern-checkbox"><input type="checkbox"
|
|
305
|
-
class="plugin-checkbox" value="opencode-antigravity-auth" checked disabled><span
|
|
306
|
-
class="checkmark"></span>⚡ opencode-antigravity-auth</label><span
|
|
307
|
-
class="plugin-desc">Authentication (required)</span></div>
|
|
308
|
-
<div class="plugin-row core-plugin"><label class="modern-checkbox"><input type="checkbox"
|
|
309
|
-
class="plugin-checkbox" value="oh-my-opencode" checked disabled><span
|
|
310
|
-
class="checkmark"></span>🤖 oh-my-opencode</label><span class="plugin-desc">oMo
|
|
311
|
-
Agents (required)</span></div>
|
|
312
|
-
<div class="plugin-row core-plugin"><label class="modern-checkbox"><input type="checkbox"
|
|
313
|
-
class="plugin-checkbox" value="@tarquinen/opencode-dcp" checked disabled><span
|
|
314
|
-
class="checkmark"></span>✂️ @tarquinen/opencode-dcp</label><span
|
|
315
|
-
class="plugin-desc">Context Pruning (required)</span></div>
|
|
316
|
-
|
|
317
|
-
<div class="plugin-group-title" id="lblOptionalPlugins" style="margin-top:4px;">⚙️ Optional
|
|
318
|
-
</div>
|
|
319
|
-
<div class="plugin-row optional-plugin"><label class="modern-checkbox"><input
|
|
320
|
-
type="checkbox" class="plugin-checkbox" id="chkPluginSupermemory"
|
|
321
|
-
value="opencode-supermemory"><span class="checkmark"></span>🧠
|
|
322
|
-
opencode-supermemory</label><span class="plugin-badge hidden" id="warnSupermemory">⚠
|
|
323
|
-
No key</span><span class="plugin-desc">RAG Memory System</span></div>
|
|
324
|
-
<div class="plugin-row optional-plugin"><label class="modern-checkbox"><input
|
|
325
|
-
type="checkbox" class="plugin-checkbox"
|
|
326
|
-
value="@ramtinj95/opencode-tokenscope"><span class="checkmark"></span>📊
|
|
327
|
-
@ramtinj95/opencode-tokenscope</label><span class="plugin-desc">Token Usage
|
|
328
|
-
Stats</span></div>
|
|
329
|
-
<div class="plugin-row optional-plugin"><label class="modern-checkbox"><input
|
|
330
|
-
type="checkbox" class="plugin-checkbox" id="chkPluginOpenSync"
|
|
331
|
-
value="opencode-sync-plugin"><span class="checkmark"></span>🌩️
|
|
332
|
-
opencode-sync-plugin</label><span class="plugin-badge hidden" id="warnOpenSync">⚠ No
|
|
333
|
-
key</span><span class="plugin-desc">Chat Sync (OpenSync)</span></div>
|
|
334
|
-
<div class="plugin-row optional-plugin"><label class="modern-checkbox"><input
|
|
335
|
-
type="checkbox" class="plugin-checkbox" value="cc-safety-net"><span
|
|
336
|
-
class="checkmark"></span>🛡️
|
|
337
|
-
cc-safety-net</label><span class="plugin-desc">Safety Guard</span></div>
|
|
338
|
-
</div>
|
|
339
|
-
<div style="margin-top:6px;text-align:right;">
|
|
340
|
-
<button class="btn secondary btn-xs" id="btnPreviewConfig">👁 Preview opencode.json</button>
|
|
341
|
-
</div>
|
|
342
|
-
</div>
|
|
343
|
-
<div class="divider"></div>
|
|
344
|
-
<div class="form-group">
|
|
345
|
-
<div class="label-row"><label class="cyan-label">SUPERMEMORY</label><span
|
|
346
|
-
class="val-indicator val-empty" id="valSupermemory">(Optional)</span></div>
|
|
347
|
-
<span class="help-text">API Key (console.supermemory.ai/keys)</span>
|
|
348
|
-
<input type="text" id="txtSupermemoryKey" class="modern-input" spellcheck="false"
|
|
349
|
-
placeholder="sm_...">
|
|
350
|
-
</div>
|
|
351
|
-
<div class="form-group">
|
|
352
|
-
<div class="label-row"><label class="purple-label">OPENSYNC</label><span
|
|
353
|
-
class="val-indicator val-empty" id="valOpenSyncKey">(Optional)</span></div>
|
|
354
|
-
<span class="help-text">API Key (opensync.dev → Settings)</span>
|
|
355
|
-
<input type="text" id="txtOpenSyncKey" class="modern-input" spellcheck="false">
|
|
356
|
-
<div class="label-row"><span class="help-text">Convex URL</span><span
|
|
357
|
-
class="val-indicator val-empty" id="valOpenSyncUrl">(Optional)</span></div>
|
|
358
|
-
<input type="text" id="txtOpenSyncUrl" class="modern-input" spellcheck="false"
|
|
359
|
-
placeholder="https://...convex.cloud">
|
|
360
|
-
</div>
|
|
361
|
-
|
|
362
|
-
<div class="divider"></div>
|
|
363
|
-
<label class="grey-label">OPTIONS</label>
|
|
364
|
-
<label class="modern-checkbox"><input type="checkbox" id="chkBackup" checked><span
|
|
365
|
-
class="checkmark"></span>Backup konfigurasi lama</label>
|
|
366
|
-
<label class="modern-checkbox"><input type="checkbox" id="chkNpmInstall" checked><span
|
|
367
|
-
class="checkmark"></span>Jalankan npm install</label>
|
|
368
|
-
</div>
|
|
369
|
-
<div class="page-footer">
|
|
370
|
-
<button class="btn secondary" id="btnPrev3">← Back</button>
|
|
371
|
-
<button class="btn primary" id="btnNext3">Install Now →</button>
|
|
372
|
-
</div>
|
|
373
|
-
</div>
|
|
374
|
-
<!-- PAGE 4: INSTALLING -->
|
|
375
|
-
<div id="page4" class="page">
|
|
376
|
-
<div class="page-header">
|
|
377
|
-
<h2 id="installTitle">Installing...</h2>
|
|
378
|
-
<p id="installSubtitle">Menyalin konfigurasi...</p>
|
|
379
|
-
</div>
|
|
380
|
-
<div class="progress-container">
|
|
381
|
-
<div class="progress-bar" id="installProgress" style="width:0%"></div>
|
|
382
|
-
</div>
|
|
383
|
-
<div class="log-container">
|
|
384
|
-
<div class="log-header"><span class="log-title">Log</span></div>
|
|
385
|
-
<div class="log-content scroll-area" id="logContent"></div>
|
|
386
|
-
</div>
|
|
387
|
-
<div class="page-footer"><button class="btn primary hidden" id="btnNext4">Finish ✓</button></div>
|
|
388
|
-
</div>
|
|
389
|
-
<!-- PAGE 5: COMPLETE -->
|
|
390
|
-
<div id="page5" class="page">
|
|
391
|
-
<div class="center-content">
|
|
392
|
-
<div class="success-icon">✓</div>
|
|
393
|
-
<h2>Installation Complete!</h2>
|
|
394
|
-
<p class="success-text">Antigravity OpenCode siap digunakan</p>
|
|
395
|
-
<div class="summary-card"><label class="cyan-label">📁 Config Location</label>
|
|
396
|
-
<div class="code-text" id="txtConfigPath">...</div>
|
|
397
|
-
</div>
|
|
398
|
-
<div class="summary-card"><label class="purple-label">🚀 Next Steps</label>
|
|
399
|
-
<div class="step-text">1. opencode auth login</div>
|
|
400
|
-
<div class="step-text">2. opencode</div>
|
|
401
|
-
</div>
|
|
402
|
-
<div class="action-row">
|
|
403
|
-
<button class="btn secondary" id="btnOpenFolder">📂 Config</button>
|
|
404
|
-
<button class="btn secondary" id="btnAuthLogin">🔑 Auth</button>
|
|
405
|
-
<button class="btn
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
<div class="modal-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
</
|
|
424
|
-
|
|
214
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
215
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
216
|
+
Think</option>
|
|
217
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
218
|
+
</option>
|
|
219
|
+
</select></div>
|
|
220
|
+
|
|
221
|
+
<div class="agent-adv-section" style="border-left-color:#3498db;">⚡ Light Group</div>
|
|
222
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Librarian
|
|
223
|
+
<i>(Research)</i></span><select id="selAgent_librarian"
|
|
224
|
+
class="agent-model-select agent-adv-select" data-group="light">
|
|
225
|
+
<option value="google/antigravity-gemini-3-flash" selected>Gemini 3 Flash</option>
|
|
226
|
+
<option value="google/antigravity-gemini-3-1-pro">Gemini 3.1 Pro</option>
|
|
227
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
228
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
229
|
+
Think</option>
|
|
230
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
231
|
+
</option>
|
|
232
|
+
</select></div>
|
|
233
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Explore <i>(Scout)</i></span><select
|
|
234
|
+
id="selAgent_explore" class="agent-model-select agent-adv-select"
|
|
235
|
+
data-group="light">
|
|
236
|
+
<option value="google/antigravity-gemini-3-flash" selected>Gemini 3 Flash</option>
|
|
237
|
+
<option value="google/antigravity-gemini-3-1-pro">Gemini 3.1 Pro</option>
|
|
238
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
239
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
240
|
+
Think</option>
|
|
241
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
242
|
+
</option>
|
|
243
|
+
</select></div>
|
|
244
|
+
<div class="agent-adv-row"><span class="agent-adv-name">Multimodal-Looker
|
|
245
|
+
<i>(Vision)</i></span><select id="selAgent_multimodal_looker"
|
|
246
|
+
class="agent-model-select agent-adv-select" data-group="light">
|
|
247
|
+
<option value="google/antigravity-gemini-3-flash" selected>Gemini 3 Flash</option>
|
|
248
|
+
<option value="google/antigravity-gemini-3-1-pro">Gemini 3.1 Pro</option>
|
|
249
|
+
<option value="google/antigravity-claude-sonnet-4-6">Claude Sonnet 4.6</option>
|
|
250
|
+
<option value="google/antigravity-claude-sonnet-4-6-thinking">Claude Sonnet 4.6
|
|
251
|
+
Think</option>
|
|
252
|
+
<option value="google/antigravity-claude-opus-4-6-thinking">Claude Opus 4.6 Think
|
|
253
|
+
</option>
|
|
254
|
+
</select></div>
|
|
255
|
+
</div>
|
|
256
|
+
</div>
|
|
257
|
+
</div>
|
|
258
|
+
<div class="page-footer">
|
|
259
|
+
<button class="btn secondary" id="btnPrev1">← Back</button>
|
|
260
|
+
<div style="flex:1"></div>
|
|
261
|
+
<button class="btn primary" id="btnNext1">Continue →</button>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
<!-- PAGE 2: SYSTEM CHECK -->
|
|
265
|
+
<div id="page2" class="page">
|
|
266
|
+
<div class="page-header">
|
|
267
|
+
<h2>System Check</h2>
|
|
268
|
+
<p>Checking environment...</p>
|
|
269
|
+
</div>
|
|
270
|
+
<div class="scroll-area" id="prereqPanel"></div>
|
|
271
|
+
<div class="page-footer">
|
|
272
|
+
<button class="btn secondary" id="btnRecheck">🔄 Re-check</button>
|
|
273
|
+
<div style="flex:1"></div>
|
|
274
|
+
<button class="btn secondary" id="btnPrev2">← Back</button>
|
|
275
|
+
<button class="btn primary disabled" id="btnNext2" disabled>Continue →</button>
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
<!-- PAGE 3: CONFIG -->
|
|
279
|
+
<div id="page3" class="page">
|
|
280
|
+
<div class="page-header">
|
|
281
|
+
<div class="header-row">
|
|
282
|
+
<div>
|
|
283
|
+
<h2>Configuration</h2>
|
|
284
|
+
<p>API Keys & file selection</p>
|
|
285
|
+
</div>
|
|
286
|
+
<div class="header-actions">
|
|
287
|
+
<button class="btn secondary btn-xs" id="btnImport">📥 Import</button>
|
|
288
|
+
<button class="btn secondary btn-xs" id="btnExport">📤 Export</button>
|
|
289
|
+
</div>
|
|
290
|
+
</div>
|
|
291
|
+
</div>
|
|
292
|
+
<div class="scroll-area">
|
|
293
|
+
<div class="form-group">
|
|
294
|
+
<div class="label-row">
|
|
295
|
+
<label class="cyan-label">PLUGINS <span id="pluginCount"
|
|
296
|
+
style="color:var(--t2);font-weight:normal;font-size:10px;margin-left:4px">3/7</span></label>
|
|
297
|
+
<span class="file-actions">
|
|
298
|
+
<a id="btnPluginAll" class="link-btn">All</a><span class="link-sep">|</span><a
|
|
299
|
+
id="btnPluginNone" class="link-btn">None</a>
|
|
300
|
+
</span>
|
|
301
|
+
</div>
|
|
302
|
+
<div class="plugin-grid" id="pluginGrid">
|
|
303
|
+
<div class="plugin-group-title" id="lblCorePlugins">🔒 Core (Required)</div>
|
|
304
|
+
<div class="plugin-row core-plugin"><label class="modern-checkbox"><input type="checkbox"
|
|
305
|
+
class="plugin-checkbox" value="opencode-antigravity-auth" checked disabled><span
|
|
306
|
+
class="checkmark"></span>⚡ opencode-antigravity-auth</label><span
|
|
307
|
+
class="plugin-desc">Authentication (required)</span></div>
|
|
308
|
+
<div class="plugin-row core-plugin"><label class="modern-checkbox"><input type="checkbox"
|
|
309
|
+
class="plugin-checkbox" value="oh-my-opencode" checked disabled><span
|
|
310
|
+
class="checkmark"></span>🤖 oh-my-opencode</label><span class="plugin-desc">oMo
|
|
311
|
+
Agents (required)</span></div>
|
|
312
|
+
<div class="plugin-row core-plugin"><label class="modern-checkbox"><input type="checkbox"
|
|
313
|
+
class="plugin-checkbox" value="@tarquinen/opencode-dcp" checked disabled><span
|
|
314
|
+
class="checkmark"></span>✂️ @tarquinen/opencode-dcp</label><span
|
|
315
|
+
class="plugin-desc">Context Pruning (required)</span></div>
|
|
316
|
+
|
|
317
|
+
<div class="plugin-group-title" id="lblOptionalPlugins" style="margin-top:4px;">⚙️ Optional
|
|
318
|
+
</div>
|
|
319
|
+
<div class="plugin-row optional-plugin"><label class="modern-checkbox"><input
|
|
320
|
+
type="checkbox" class="plugin-checkbox" id="chkPluginSupermemory"
|
|
321
|
+
value="opencode-supermemory"><span class="checkmark"></span>🧠
|
|
322
|
+
opencode-supermemory</label><span class="plugin-badge hidden" id="warnSupermemory">⚠
|
|
323
|
+
No key</span><span class="plugin-desc">RAG Memory System</span></div>
|
|
324
|
+
<div class="plugin-row optional-plugin"><label class="modern-checkbox"><input
|
|
325
|
+
type="checkbox" class="plugin-checkbox"
|
|
326
|
+
value="@ramtinj95/opencode-tokenscope"><span class="checkmark"></span>📊
|
|
327
|
+
@ramtinj95/opencode-tokenscope</label><span class="plugin-desc">Token Usage
|
|
328
|
+
Stats</span></div>
|
|
329
|
+
<div class="plugin-row optional-plugin"><label class="modern-checkbox"><input
|
|
330
|
+
type="checkbox" class="plugin-checkbox" id="chkPluginOpenSync"
|
|
331
|
+
value="opencode-sync-plugin"><span class="checkmark"></span>🌩️
|
|
332
|
+
opencode-sync-plugin</label><span class="plugin-badge hidden" id="warnOpenSync">⚠ No
|
|
333
|
+
key</span><span class="plugin-desc">Chat Sync (OpenSync)</span></div>
|
|
334
|
+
<div class="plugin-row optional-plugin"><label class="modern-checkbox"><input
|
|
335
|
+
type="checkbox" class="plugin-checkbox" value="cc-safety-net"><span
|
|
336
|
+
class="checkmark"></span>🛡️
|
|
337
|
+
cc-safety-net</label><span class="plugin-desc">Safety Guard</span></div>
|
|
338
|
+
</div>
|
|
339
|
+
<div style="margin-top:6px;text-align:right;">
|
|
340
|
+
<button class="btn secondary btn-xs" id="btnPreviewConfig">👁 Preview opencode.json</button>
|
|
341
|
+
</div>
|
|
342
|
+
</div>
|
|
343
|
+
<div class="divider"></div>
|
|
344
|
+
<div class="form-group">
|
|
345
|
+
<div class="label-row"><label class="cyan-label">SUPERMEMORY</label><span
|
|
346
|
+
class="val-indicator val-empty" id="valSupermemory">(Optional)</span></div>
|
|
347
|
+
<span class="help-text">API Key (console.supermemory.ai/keys)</span>
|
|
348
|
+
<input type="text" id="txtSupermemoryKey" class="modern-input" spellcheck="false"
|
|
349
|
+
placeholder="sm_...">
|
|
350
|
+
</div>
|
|
351
|
+
<div class="form-group">
|
|
352
|
+
<div class="label-row"><label class="purple-label">OPENSYNC</label><span
|
|
353
|
+
class="val-indicator val-empty" id="valOpenSyncKey">(Optional)</span></div>
|
|
354
|
+
<span class="help-text">API Key (opensync.dev → Settings)</span>
|
|
355
|
+
<input type="text" id="txtOpenSyncKey" class="modern-input" spellcheck="false">
|
|
356
|
+
<div class="label-row"><span class="help-text">Convex URL</span><span
|
|
357
|
+
class="val-indicator val-empty" id="valOpenSyncUrl">(Optional)</span></div>
|
|
358
|
+
<input type="text" id="txtOpenSyncUrl" class="modern-input" spellcheck="false"
|
|
359
|
+
placeholder="https://...convex.cloud">
|
|
360
|
+
</div>
|
|
361
|
+
|
|
362
|
+
<div class="divider"></div>
|
|
363
|
+
<label class="grey-label">OPTIONS</label>
|
|
364
|
+
<label class="modern-checkbox"><input type="checkbox" id="chkBackup" checked><span
|
|
365
|
+
class="checkmark"></span>Backup konfigurasi lama</label>
|
|
366
|
+
<label class="modern-checkbox"><input type="checkbox" id="chkNpmInstall" checked><span
|
|
367
|
+
class="checkmark"></span>Jalankan npm install</label>
|
|
368
|
+
</div>
|
|
369
|
+
<div class="page-footer">
|
|
370
|
+
<button class="btn secondary" id="btnPrev3">← Back</button>
|
|
371
|
+
<button class="btn primary" id="btnNext3">Install Now →</button>
|
|
372
|
+
</div>
|
|
373
|
+
</div>
|
|
374
|
+
<!-- PAGE 4: INSTALLING -->
|
|
375
|
+
<div id="page4" class="page">
|
|
376
|
+
<div class="page-header">
|
|
377
|
+
<h2 id="installTitle">Installing...</h2>
|
|
378
|
+
<p id="installSubtitle">Menyalin konfigurasi...</p>
|
|
379
|
+
</div>
|
|
380
|
+
<div class="progress-container">
|
|
381
|
+
<div class="progress-bar" id="installProgress" style="width:0%"></div>
|
|
382
|
+
</div>
|
|
383
|
+
<div class="log-container">
|
|
384
|
+
<div class="log-header"><span class="log-title">Log</span></div>
|
|
385
|
+
<div class="log-content scroll-area" id="logContent"></div>
|
|
386
|
+
</div>
|
|
387
|
+
<div class="page-footer"><button class="btn primary hidden" id="btnNext4">Finish ✓</button></div>
|
|
388
|
+
</div>
|
|
389
|
+
<!-- PAGE 5: COMPLETE -->
|
|
390
|
+
<div id="page5" class="page">
|
|
391
|
+
<div class="center-content">
|
|
392
|
+
<div class="success-icon">✓</div>
|
|
393
|
+
<h2>Installation Complete!</h2>
|
|
394
|
+
<p class="success-text">Antigravity OpenCode siap digunakan</p>
|
|
395
|
+
<div class="summary-card"><label class="cyan-label">📁 Config Location</label>
|
|
396
|
+
<div class="code-text" id="txtConfigPath">...</div>
|
|
397
|
+
</div>
|
|
398
|
+
<div class="summary-card"><label class="purple-label">🚀 Next Steps</label>
|
|
399
|
+
<div class="step-text">1. opencode auth login</div>
|
|
400
|
+
<div class="step-text">2. opencode</div>
|
|
401
|
+
</div>
|
|
402
|
+
<div class="action-row" style="flex-wrap: wrap; justify-content: center; gap: 8px;">
|
|
403
|
+
<button class="btn secondary" id="btnOpenFolder">📂 Config</button>
|
|
404
|
+
<button class="btn secondary" id="btnAuthLogin">🔑 Auth</button>
|
|
405
|
+
<button class="btn secondary" id="btnRunCLI">💻 CLI</button>
|
|
406
|
+
<button class="btn secondary" id="btnRunWeb">🌐 Web</button>
|
|
407
|
+
<button class="btn primary" id="btnFinish">Close</button>
|
|
408
|
+
</div>
|
|
409
|
+
</div>
|
|
410
|
+
</div>
|
|
411
|
+
</div>
|
|
412
|
+
</div>
|
|
413
|
+
<!-- MODAL -->
|
|
414
|
+
<div class="modal-overlay" id="modal">
|
|
415
|
+
<div class="modal-container">
|
|
416
|
+
<div class="modal-header"><span class="modal-title" id="modalTitle">Title</span><button class="modal-close"
|
|
417
|
+
id="btnModalClose">✕</button></div>
|
|
418
|
+
<div class="modal-body" id="modalBody"></div>
|
|
419
|
+
</div>
|
|
420
|
+
</div>
|
|
421
|
+
<script src="i18n.js"></script>
|
|
422
|
+
<script src="renderer.js"></script>
|
|
423
|
+
</body>
|
|
424
|
+
|
|
425
|
+
</html>
|
|
426
|
+
|
package/main.js
CHANGED
|
@@ -9,8 +9,9 @@ const configData = require('./config-data.js');
|
|
|
9
9
|
let mainWindow;
|
|
10
10
|
const configDir = path.join(os.homedir(), '.config', 'opencode');
|
|
11
11
|
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const pkg = require('./package.json');
|
|
13
|
+
const CONFIG_VERSION = pkg.version;
|
|
14
|
+
const CONFIG_DATE = new Date().toISOString().split('T')[0];
|
|
14
15
|
const VERSION_CHECK_URL = '';
|
|
15
16
|
|
|
16
17
|
const BUNDLED_CONFIGS = [
|
|
@@ -63,6 +64,16 @@ ipcMain.on('run-auth-login', () => {
|
|
|
63
64
|
spawn('cmd.exe', ['/c', 'start', 'cmd', '/k', 'opencode auth login'], { detached: true, stdio: 'ignore' });
|
|
64
65
|
}
|
|
65
66
|
});
|
|
67
|
+
ipcMain.on('run-opencode-cli', () => {
|
|
68
|
+
if (process.platform === 'win32') {
|
|
69
|
+
spawn('cmd.exe', ['/c', 'start', 'cmd', '/k', 'opencode'], { detached: true, stdio: 'ignore' });
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
ipcMain.on('run-opencode-web', () => {
|
|
73
|
+
if (process.platform === 'win32') {
|
|
74
|
+
spawn('cmd.exe', ['/c', 'start', 'cmd', '/k', 'opencode --port 8080'], { detached: true, stdio: 'ignore' });
|
|
75
|
+
}
|
|
76
|
+
});
|
|
66
77
|
|
|
67
78
|
function runCommand(cmd) {
|
|
68
79
|
return new Promise(resolve => {
|
package/package.json
CHANGED
package/preload.js
CHANGED
|
@@ -18,5 +18,7 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
18
18
|
onInstallLog: (cb) => { ipcRenderer.removeAllListeners('install-log'); ipcRenderer.on('install-log', (e, d) => cb(d)); },
|
|
19
19
|
onInstallComplete: (cb) => { ipcRenderer.removeAllListeners('install-complete'); ipcRenderer.on('install-complete', (e, d) => cb(d)); },
|
|
20
20
|
openConfigFolder: () => ipcRenderer.send('open-config-folder'),
|
|
21
|
-
runAuthLogin: () => ipcRenderer.send('run-auth-login')
|
|
21
|
+
runAuthLogin: () => ipcRenderer.send('run-auth-login'),
|
|
22
|
+
runOpencodeCLI: () => ipcRenderer.send('run-opencode-cli'),
|
|
23
|
+
runOpencodeWeb: () => ipcRenderer.send('run-opencode-web')
|
|
22
24
|
});
|
package/renderer.js
CHANGED
|
@@ -54,7 +54,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
54
54
|
|
|
55
55
|
// ── Page 0: Welcome ──
|
|
56
56
|
document.getElementById('btnStart').addEventListener('click', () => { navigateTo(1); });
|
|
57
|
-
(async () => { const m = await window.api.getConfigMeta(); const el = document.getElementById('configMetaText'); if (el && m) el.textContent = `Config v${m.version} • ${m.date} • ${m.fileCount} files`; })();
|
|
57
|
+
(async () => { const m = await window.api.getConfigMeta(); const el = document.getElementById('configMetaText'); if (el && m) el.textContent = `Config v${m.version} • ${m.date} • ${m.fileCount} files`; const vt = document.querySelector('.version-text'); if (vt && m) vt.textContent = `v${m.version}`; })();
|
|
58
58
|
|
|
59
59
|
// Agent Model Selection Logic
|
|
60
60
|
const AGENT_GROUPS = {
|
|
@@ -313,5 +313,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
313
313
|
document.getElementById('btnNext4').addEventListener('click', () => navigateTo(5));
|
|
314
314
|
document.getElementById('btnOpenFolder').addEventListener('click', () => window.api.openConfigFolder());
|
|
315
315
|
document.getElementById('btnAuthLogin').addEventListener('click', () => window.api.runAuthLogin());
|
|
316
|
+
document.getElementById('btnRunCLI').addEventListener('click', () => window.api.runOpencodeCLI());
|
|
317
|
+
document.getElementById('btnRunWeb').addEventListener('click', () => window.api.runOpencodeWeb());
|
|
316
318
|
document.getElementById('btnFinish').addEventListener('click', () => window.api.close());
|
|
317
319
|
});
|