@adiholick/nvstudio-mcp 2.1.6 → 2.1.7
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/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ const isDaemon = process.argv.includes('--daemon') || process.argv.includes('-d'
|
|
|
28
28
|
// 2. Inisialisasi server MCP
|
|
29
29
|
const server = new index_js_1.Server({
|
|
30
30
|
name: "nvstudio-mcp",
|
|
31
|
-
version: "2.1.
|
|
31
|
+
version: "2.1.7",
|
|
32
32
|
}, {
|
|
33
33
|
capabilities: {
|
|
34
34
|
tools: {},
|
package/dist/roblox-bridge.js
CHANGED
|
@@ -76,8 +76,8 @@ function sendEvent(peer, kind, payload) {
|
|
|
76
76
|
function broadcastStatus() {
|
|
77
77
|
const statusEvent = {
|
|
78
78
|
mcpConnected,
|
|
79
|
-
studioCount: ssePeers.size,
|
|
80
|
-
serverVersion: '2.1.
|
|
79
|
+
studioCount: Math.max(ssePeers.size, studioEventQueues.size),
|
|
80
|
+
serverVersion: '2.1.7',
|
|
81
81
|
};
|
|
82
82
|
broadcastEvent('status', statusEvent);
|
|
83
83
|
// Juga enqueue untuk Studio yang belum polling saat ini
|
|
@@ -163,7 +163,7 @@ function startBridgeServer(port = 3055) {
|
|
|
163
163
|
io.on('connection', (socket) => {
|
|
164
164
|
socket.emit('init', {
|
|
165
165
|
logs: activityLogs,
|
|
166
|
-
stats: { totalTasks, successCount, errorCount, sessionStart, studioConnected: ssePeers.size > 0, port },
|
|
166
|
+
stats: { totalTasks, successCount, errorCount, sessionStart, studioConnected: Math.max(ssePeers.size, studioEventQueues.size) > 0, port },
|
|
167
167
|
});
|
|
168
168
|
});
|
|
169
169
|
// ── /api/stats ─────────────────────────────────────────────────────────────
|
|
@@ -210,7 +210,7 @@ function startBridgeServer(port = 3055) {
|
|
|
210
210
|
studioEventQueues.set(studioId, []); // kosongkan antrian
|
|
211
211
|
// Selalu sertakan status terkini
|
|
212
212
|
const events = [
|
|
213
|
-
{ kind: 'status', mcpConnected, studioCount: studioEventQueues.size, serverVersion: '2.1.
|
|
213
|
+
{ kind: 'status', mcpConnected, studioCount: studioEventQueues.size, serverVersion: '2.1.7' },
|
|
214
214
|
];
|
|
215
215
|
// Tambahkan events tertunda (misalnya task requests)
|
|
216
216
|
for (const ev of queue) {
|
|
@@ -259,7 +259,7 @@ function startBridgeServer(port = 3055) {
|
|
|
259
259
|
const silenceTimer = setTimeout(() => cleanup(), 60000);
|
|
260
260
|
const peer = { studioId, res, connectedAt: Date.now(), heartbeatTimer, silenceTimer };
|
|
261
261
|
ssePeers.set(studioId, peer);
|
|
262
|
-
sendEvent(peer, 'status', { mcpConnected, studioCount: studioEventQueues.size, serverVersion: '2.1.
|
|
262
|
+
sendEvent(peer, 'status', { mcpConnected, studioCount: studioEventQueues.size, serverVersion: '2.1.7' });
|
|
263
263
|
function cleanup() {
|
|
264
264
|
clearInterval(heartbeatTimer);
|
|
265
265
|
clearTimeout(silenceTimer);
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
-- ══════════════════════════════════════════════════════════════════════
|
|
2
|
-
-- NVStudio MCP Plugin v2.1.
|
|
2
|
+
-- NVStudio MCP Plugin v2.1.7
|
|
3
3
|
-- Arsitektur: Polling Stream / Local HTTP Bridge (Port 3055)
|
|
4
4
|
-- Plugin auto-connect saat dimuat, polling /api/ping lalu /api/stream
|
|
5
5
|
-- untuk mendapatkan events (status, request) dari server Node.js.
|
|
@@ -224,12 +224,15 @@ local function handleSSELine(line)
|
|
|
224
224
|
-- status: update mcpConnected
|
|
225
225
|
if kind == "status" then
|
|
226
226
|
local newActive = decoded.mcpConnected == true
|
|
227
|
+
local changed = (mcpAgentActive ~= newActive)
|
|
227
228
|
mcpAgentActive = newActive
|
|
228
229
|
if ui then
|
|
229
230
|
-- Jaga status tetap Connected selama bridge server hidup
|
|
230
231
|
ui:setStatus("connected")
|
|
231
|
-
if newActive then
|
|
232
|
+
if newActive and changed then
|
|
232
233
|
ui:addLog("[System] ✅ IDE Agent (Antigravity) aktif.", Color3.fromRGB(100, 255, 100))
|
|
234
|
+
elseif not newActive and changed then
|
|
235
|
+
ui:addLog("[System] ⚠️ IDE Agent terputus.", Color3.fromRGB(255, 150, 50))
|
|
233
236
|
end
|
|
234
237
|
end
|
|
235
238
|
return
|
|
@@ -271,7 +274,7 @@ function startConnectionLoop()
|
|
|
271
274
|
reconnectDelay = RECONNECT_DELAY_INITIAL
|
|
272
275
|
|
|
273
276
|
if ui then
|
|
274
|
-
ui:addLog("[System] NVStudio MCP v2.1.
|
|
277
|
+
ui:addLog("[System] NVStudio MCP v2.1.7 — Menghubungkan ke server...", Color3.fromRGB(200, 200, 200))
|
|
275
278
|
end
|
|
276
279
|
|
|
277
280
|
local consecutiveErrors = 0
|
|
@@ -379,7 +379,7 @@ end
|
|
|
379
379
|
<BinaryString name="Tags"></BinaryString>
|
|
380
380
|
<token name="RunContext">0</token>
|
|
381
381
|
<ProtectedString name="Source"><![CDATA[-- ══════════════════════════════════════════════════════════════════════
|
|
382
|
-
-- NVStudio MCP Plugin v2.1.
|
|
382
|
+
-- NVStudio MCP Plugin v2.1.7
|
|
383
383
|
-- Arsitektur: Polling Stream / Local HTTP Bridge (Port 3055)
|
|
384
384
|
-- Plugin auto-connect saat dimuat, polling /api/ping lalu /api/stream
|
|
385
385
|
-- untuk mendapatkan events (status, request) dari server Node.js.
|
|
@@ -604,12 +604,15 @@ local function handleSSELine(line)
|
|
|
604
604
|
-- status: update mcpConnected
|
|
605
605
|
if kind == "status" then
|
|
606
606
|
local newActive = decoded.mcpConnected == true
|
|
607
|
+
local changed = (mcpAgentActive ~= newActive)
|
|
607
608
|
mcpAgentActive = newActive
|
|
608
609
|
if ui then
|
|
609
610
|
-- Jaga status tetap Connected selama bridge server hidup
|
|
610
611
|
ui:setStatus("connected")
|
|
611
|
-
if newActive then
|
|
612
|
+
if newActive and changed then
|
|
612
613
|
ui:addLog("[System] ✅ IDE Agent (Antigravity) aktif.", Color3.fromRGB(100, 255, 100))
|
|
614
|
+
elseif not newActive and changed then
|
|
615
|
+
ui:addLog("[System] ⚠️ IDE Agent terputus.", Color3.fromRGB(255, 150, 50))
|
|
613
616
|
end
|
|
614
617
|
end
|
|
615
618
|
return
|
|
@@ -651,7 +654,7 @@ function startConnectionLoop()
|
|
|
651
654
|
reconnectDelay = RECONNECT_DELAY_INITIAL
|
|
652
655
|
|
|
653
656
|
if ui then
|
|
654
|
-
ui:addLog("[System] NVStudio MCP v2.1.
|
|
657
|
+
ui:addLog("[System] NVStudio MCP v2.1.7 — Menghubungkan ke server...", Color3.fromRGB(200, 200, 200))
|
|
655
658
|
end
|
|
656
659
|
|
|
657
660
|
local consecutiveErrors = 0
|
|
@@ -1078,7 +1081,7 @@ function UIManager.init(pluginInstance, studioId)
|
|
|
1078
1081
|
|
|
1079
1082
|
-- Version
|
|
1080
1083
|
local versionLabel = Instance.new("TextLabel")
|
|
1081
|
-
versionLabel.Text = "v2.1.
|
|
1084
|
+
versionLabel.Text = "v2.1.7"
|
|
1082
1085
|
versionLabel.Font = Enum.Font.Gotham
|
|
1083
1086
|
versionLabel.TextSize = 11
|
|
1084
1087
|
versionLabel.TextColor3 = Color3.fromRGB(120, 120, 130)
|
|
@@ -95,7 +95,7 @@ function UIManager.init(pluginInstance, studioId)
|
|
|
95
95
|
|
|
96
96
|
-- Version
|
|
97
97
|
local versionLabel = Instance.new("TextLabel")
|
|
98
|
-
versionLabel.Text = "v2.1.
|
|
98
|
+
versionLabel.Text = "v2.1.7"
|
|
99
99
|
versionLabel.Font = Enum.Font.Gotham
|
|
100
100
|
versionLabel.TextSize = 11
|
|
101
101
|
versionLabel.TextColor3 = Color3.fromRGB(120, 120, 130)
|