@adiholick/nvstudio-mcp 2.1.4 → 2.1.6

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.4",
31
+ version: "2.1.6",
32
32
  }, {
33
33
  capabilities: {
34
34
  tools: {},
@@ -219,13 +219,7 @@ async function main() {
219
219
  process.stdin.on('close', shutdown);
220
220
  process.stdin.on('end', shutdown);
221
221
  process.stdin.on('error', shutdown);
222
- // Fallback khusus Windows: cek apakah stdin masih readable secara berkala
223
- setInterval(() => {
224
- if (!process.stdin.readable) {
225
- console.error("[nvstudio-mcp] stdin tidak readable lagi. IDE kemungkinan sudah ditutup.");
226
- shutdown();
227
- }
228
- }, 3000);
222
+ // Fallback dihapus karena menyebabkan disconnect palsu di beberapa environment AGY
229
223
  }
230
224
  if (isDaemon) {
231
225
  console.error("[nvstudio-mcp] Berjalan dalam mode DAEMON (Background Bridge Server di port 3055).");
@@ -77,7 +77,7 @@ function broadcastStatus() {
77
77
  const statusEvent = {
78
78
  mcpConnected,
79
79
  studioCount: ssePeers.size,
80
- serverVersion: '2.1.4',
80
+ serverVersion: '2.1.6',
81
81
  };
82
82
  broadcastEvent('status', statusEvent);
83
83
  // Juga enqueue untuk Studio yang belum polling saat ini
@@ -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.4' },
213
+ { kind: 'status', mcpConnected, studioCount: studioEventQueues.size, serverVersion: '2.1.6' },
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.4' });
262
+ sendEvent(peer, 'status', { mcpConnected, studioCount: studioEventQueues.size, serverVersion: '2.1.6' });
263
263
  function cleanup() {
264
264
  clearInterval(heartbeatTimer);
265
265
  clearTimeout(silenceTimer);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adiholick/nvstudio-mcp",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "description": "Local Bridge Server MCP for Roblox Studio",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -1,5 +1,5 @@
1
1
  -- ══════════════════════════════════════════════════════════════════════
2
- -- NVStudio MCP Plugin v2.1.4
2
+ -- NVStudio MCP Plugin v2.1.6
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.
@@ -40,8 +40,8 @@ local mcpAgentActive = false -- apakah Antigravity sedang konek ke MCP
40
40
  local serverReachable = false -- apakah server Node.js reachable
41
41
 
42
42
  -- Reconnect config
43
- local RECONNECT_DELAY_INITIAL = 1
44
- local RECONNECT_DELAY_MAX = 15
43
+ local RECONNECT_DELAY_INITIAL = 1.5
44
+ local RECONNECT_DELAY_MAX = 1.5
45
45
  local reconnectDelay = RECONNECT_DELAY_INITIAL
46
46
 
47
47
  -- ── Skills (ModuleScript) ─────────────────────────────────────────────────────
@@ -271,7 +271,7 @@ function startConnectionLoop()
271
271
  reconnectDelay = RECONNECT_DELAY_INITIAL
272
272
 
273
273
  if ui then
274
- ui:addLog("[System] NVStudio MCP v2.1.4 — Menghubungkan ke server...", Color3.fromRGB(200, 200, 200))
274
+ ui:addLog("[System] NVStudio MCP v2.1.6 — Menghubungkan ke server...", Color3.fromRGB(200, 200, 200))
275
275
  end
276
276
 
277
277
  local consecutiveErrors = 0
@@ -314,13 +314,13 @@ function startConnectionLoop()
314
314
  mcpAgentActive = false
315
315
  if ui then
316
316
  ui:setStatus("waiting")
317
- ui:addLog("[System] ⚠️ Server MCP tidak dapat dijangkau. Retry dalam " .. reconnectDelay .. "s...", Color3.fromRGB(255, 150, 50))
317
+ ui:addLog("[System] ⚠️ Server MCP tidak dapat dijangkau. Mencoba menghubungkan ulang...", Color3.fromRGB(255, 150, 50))
318
318
  end
319
319
  end
320
320
  end
321
321
 
322
322
  task.wait(reconnectDelay)
323
- reconnectDelay = math.min(reconnectDelay * 2, RECONNECT_DELAY_MAX)
323
+ reconnectDelay = RECONNECT_DELAY_MAX
324
324
  end
325
325
  end
326
326
 
@@ -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.4
382
+ -- NVStudio MCP Plugin v2.1.6
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.
@@ -420,8 +420,8 @@ local mcpAgentActive = false -- apakah Antigravity sedang konek ke MCP
420
420
  local serverReachable = false -- apakah server Node.js reachable
421
421
 
422
422
  -- Reconnect config
423
- local RECONNECT_DELAY_INITIAL = 1
424
- local RECONNECT_DELAY_MAX = 15
423
+ local RECONNECT_DELAY_INITIAL = 1.5
424
+ local RECONNECT_DELAY_MAX = 1.5
425
425
  local reconnectDelay = RECONNECT_DELAY_INITIAL
426
426
 
427
427
  -- ── Skills (ModuleScript) ─────────────────────────────────────────────────────
@@ -651,7 +651,7 @@ function startConnectionLoop()
651
651
  reconnectDelay = RECONNECT_DELAY_INITIAL
652
652
 
653
653
  if ui then
654
- ui:addLog("[System] NVStudio MCP v2.1.4 — Menghubungkan ke server...", Color3.fromRGB(200, 200, 200))
654
+ ui:addLog("[System] NVStudio MCP v2.1.6 — Menghubungkan ke server...", Color3.fromRGB(200, 200, 200))
655
655
  end
656
656
 
657
657
  local consecutiveErrors = 0
@@ -694,13 +694,13 @@ function startConnectionLoop()
694
694
  mcpAgentActive = false
695
695
  if ui then
696
696
  ui:setStatus("waiting")
697
- ui:addLog("[System] ⚠️ Server MCP tidak dapat dijangkau. Retry dalam " .. reconnectDelay .. "s...", Color3.fromRGB(255, 150, 50))
697
+ ui:addLog("[System] ⚠️ Server MCP tidak dapat dijangkau. Mencoba menghubungkan ulang...", Color3.fromRGB(255, 150, 50))
698
698
  end
699
699
  end
700
700
  end
701
701
 
702
702
  task.wait(reconnectDelay)
703
- reconnectDelay = math.min(reconnectDelay * 2, RECONNECT_DELAY_MAX)
703
+ reconnectDelay = RECONNECT_DELAY_MAX
704
704
  end
705
705
  end
706
706
 
@@ -1078,7 +1078,7 @@ function UIManager.init(pluginInstance, studioId)
1078
1078
 
1079
1079
  -- Version
1080
1080
  local versionLabel = Instance.new("TextLabel")
1081
- versionLabel.Text = "v2.1.4"
1081
+ versionLabel.Text = "v2.1.6"
1082
1082
  versionLabel.Font = Enum.Font.Gotham
1083
1083
  versionLabel.TextSize = 11
1084
1084
  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.4"
98
+ versionLabel.Text = "v2.1.6"
99
99
  versionLabel.Font = Enum.Font.Gotham
100
100
  versionLabel.TextSize = 11
101
101
  versionLabel.TextColor3 = Color3.fromRGB(120, 120, 130)