@ait-co/devtools 0.1.100 → 0.1.102

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.
Files changed (36) hide show
  1. package/dist/mcp/cli.js +107 -19
  2. package/dist/mcp/cli.js.map +1 -1
  3. package/dist/mcp/server.js +1 -1
  4. package/dist/panel/index.js +2 -2
  5. package/dist/{qr-http-server-Clvk1weS.cjs → qr-http-server-B7DsRdN1.cjs} +13 -6
  6. package/dist/{qr-http-server-Clvk1weS.cjs.map → qr-http-server-B7DsRdN1.cjs.map} +1 -1
  7. package/dist/{qr-http-server-B1fmICC4.js → qr-http-server-CK-ZT_pC.js} +13 -6
  8. package/dist/{qr-http-server-B1fmICC4.js.map → qr-http-server-CK-ZT_pC.js.map} +1 -1
  9. package/dist/{qr-http-server-ofopTUL-.js → qr-http-server-DI3A6f5L.js} +13 -6
  10. package/dist/{qr-http-server-ofopTUL-.js.map → qr-http-server-DI3A6f5L.js.map} +1 -1
  11. package/dist/{qr-http-server-C9NUBysQ.cjs → qr-http-server-Dqb3GQju.cjs} +13 -6
  12. package/dist/{qr-http-server-C9NUBysQ.cjs.map → qr-http-server-Dqb3GQju.cjs.map} +1 -1
  13. package/dist/{relay-secret-store-J0SUUXjH.js → relay-secret-store-B0DH-8Qb.js} +46 -3
  14. package/dist/relay-secret-store-B0DH-8Qb.js.map +1 -0
  15. package/dist/{relay-secret-store-B5WAozDv.cjs → relay-secret-store-CqDaaFW1.cjs} +43 -2
  16. package/dist/relay-secret-store-CqDaaFW1.cjs.map +1 -0
  17. package/dist/{relay-secret-store-BvNWdSjV.js → relay-secret-store-DKuoAJmA.js} +43 -2
  18. package/dist/relay-secret-store-DKuoAJmA.js.map +1 -0
  19. package/dist/{relay-url-store-RKcao_yG.js → relay-url-store-BPeUZsiY.js} +2 -2
  20. package/dist/{relay-url-store-RKcao_yG.js.map → relay-url-store-BPeUZsiY.js.map} +1 -1
  21. package/dist/{relay-url-store-D2lX9POP.cjs → relay-url-store-CIZlFBkR.cjs} +2 -2
  22. package/dist/{relay-url-store-D2lX9POP.cjs.map → relay-url-store-CIZlFBkR.cjs.map} +1 -1
  23. package/dist/{relay-url-store-1CXVqNDL.js → relay-url-store-DASEZiT9.js} +2 -2
  24. package/dist/{relay-url-store-1CXVqNDL.js.map → relay-url-store-DASEZiT9.js.map} +1 -1
  25. package/dist/{tunnel-C_qpse3-.js → tunnel-CepDBgEc.js} +2 -2
  26. package/dist/{tunnel-C_qpse3-.js.map → tunnel-CepDBgEc.js.map} +1 -1
  27. package/dist/{tunnel-BmDfjkQI.cjs → tunnel-D0QnxKsF.cjs} +2 -2
  28. package/dist/{tunnel-BmDfjkQI.cjs.map → tunnel-D0QnxKsF.cjs.map} +1 -1
  29. package/dist/unplugin/index.cjs +3 -3
  30. package/dist/unplugin/index.js +3 -3
  31. package/dist/unplugin/tunnel.cjs +1 -1
  32. package/dist/unplugin/tunnel.js +1 -1
  33. package/package.json +1 -1
  34. package/dist/relay-secret-store-B5WAozDv.cjs.map +0 -1
  35. package/dist/relay-secret-store-BvNWdSjV.js.map +0 -1
  36. package/dist/relay-secret-store-J0SUUXjH.js.map +0 -1
@@ -990,7 +990,7 @@ function buildLangSwitcher(path, existingParams, locale, s) {
990
990
  * - tunnel wssUrl은 "터널 연결됨" 상태 표시에서 UP/DOWN만 노출.
991
991
  * wssUrl 값 자체는 dashboard HTML에 넣지 않는다.
992
992
  */
993
- function buildDashboardHtml(state, qrDataUrl, locale, path = "/", params = new URLSearchParams()) {
993
+ function buildDashboardHtml(state, qrDataUrl, locale, path = "/", params = new URLSearchParams(), devtoolsEntryUrl = null) {
994
994
  const s = resolveLocaleStrings(locale);
995
995
  const now = (/* @__PURE__ */ new Date()).toISOString();
996
996
  const tunnelStatus = state.tunnel.up ? s("dashboard.tunnel.up") : s("dashboard.tunnel.down");
@@ -1003,7 +1003,7 @@ function buildDashboardHtml(state, qrDataUrl, locale, path = "/", params = new U
1003
1003
  } else attachSection = `<p class="hint">${escapeHtml(s("dashboard.attach.hint"))}</p>`;
1004
1004
  const pagesAttached = Array.isArray(state.pages) && state.pages.length > 0;
1005
1005
  let inspectorSection;
1006
- if (pagesAttached && state.inspectorUrl) inspectorSection = `<a class="inspector-link" id="inspector-link" href="${escapeHtml(state.inspectorUrl)}" target="_blank" rel="noopener noreferrer">${escapeHtml(s("dashboard.inspector.open"))}</a>`;
1006
+ if (pagesAttached && devtoolsEntryUrl) inspectorSection = `<a class="inspector-link" id="inspector-link" href="${escapeHtml(devtoolsEntryUrl)}" target="_blank" rel="noopener noreferrer">${escapeHtml(s("dashboard.inspector.open"))}</a>`;
1007
1007
  else inspectorSection = `<span class="inspector-hint" id="inspector-link">${escapeHtml(s("dashboard.inspector.waiting"))}</span>`;
1008
1008
  const pagesSection = state.pages === null ? "" : `<hr /><section id="pages-section"><h2>${escapeHtml(s("dashboard.pages.section"))}</h2><ul id="pages-list">${state.pages.length > 0 ? state.pages.map((p) => {
1009
1009
  return `<li><span class="page-id">${escapeHtml(p.id)}</span> <span class="page-url">${escapeHtml(p.url.slice(0, 120))}</span></li>`;
@@ -1288,7 +1288,13 @@ async function startQrHttpServer(getDashboardState, options) {
1288
1288
  errorCorrectionLevel: "M"
1289
1289
  });
1290
1290
  } catch {}
1291
- const html = buildDashboardHtml(state, qrDataUrl, locale, path, params);
1291
+ const devtoolsEntryUrl = (() => {
1292
+ if (!options?.getDirectInspectorUrl) return null;
1293
+ const addr = server.address();
1294
+ if (!addr || typeof addr === "string") return null;
1295
+ return `http://127.0.0.1:${addr.port}/devtools/`;
1296
+ })();
1297
+ const html = buildDashboardHtml(state, qrDataUrl, locale, path, params, devtoolsEntryUrl);
1292
1298
  res.writeHead(200, {
1293
1299
  "Content-Type": "text/html; charset=utf-8",
1294
1300
  "Cache-Control": "no-store"
@@ -1356,11 +1362,12 @@ async function startQrHttpServer(getDashboardState, options) {
1356
1362
  });
1357
1363
  return;
1358
1364
  }
1359
- if (path === "/inspector") {
1365
+ if (path === "/inspector" || path === "/devtools" || path === "/devtools/") {
1360
1366
  const getDirectInspectorUrl = options?.getDirectInspectorUrl;
1361
1367
  if (!getDirectInspectorUrl) {
1368
+ const body = path === "/inspector" ? "Inspector endpoint is not available in this server mode." : "relay 연결 세션에서만 DevTools UI를 열 수 있습니다.";
1362
1369
  res.writeHead(503, { "Content-Type": "text/plain; charset=utf-8" });
1363
- res.end("Inspector endpoint is not available in this server mode.");
1370
+ res.end(body);
1364
1371
  return;
1365
1372
  }
1366
1373
  const result = getDirectInspectorUrl();
@@ -1452,4 +1459,4 @@ async function startQrHttpServer(getDashboardState, options) {
1452
1459
  //#endregion
1453
1460
  exports.startQrHttpServer = startQrHttpServer;
1454
1461
 
1455
- //# sourceMappingURL=qr-http-server-C9NUBysQ.cjs.map
1462
+ //# sourceMappingURL=qr-http-server-Dqb3GQju.cjs.map