@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
@@ -968,7 +968,7 @@ function createDevServer(deps = {}) {
968
968
  const aitSource = deps.aitSource ?? new HttpAitSource({ stateEndpoint });
969
969
  const server = new Server({
970
970
  name: "ait-devtools",
971
- version: "0.1.100"
971
+ version: "0.1.102"
972
972
  }, { capabilities: { tools: {} } });
973
973
  server.setRequestHandler(ListToolsRequestSchema, () => ({ tools: DEV_TOOL_DEFINITIONS.map((tool) => ({ ...tool })) }));
974
974
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
@@ -26575,7 +26575,7 @@ function readGlobalString(key) {
26575
26575
  }
26576
26576
  const TELEMETRY_ENDPOINT = readGlobalString("__TELEMETRY_ENDPOINT__") ?? "https://t.aitc.dev";
26577
26577
  function getVersion() {
26578
- return "0.1.100";
26578
+ return "0.1.102";
26579
26579
  }
26580
26580
  let panelVisibleSince = null;
26581
26581
  let accumulatedMs = 0;
@@ -30861,7 +30861,7 @@ function Panel() {
30861
30861
  color: "#666",
30862
30862
  fontWeight: 400
30863
30863
  },
30864
- children: ["v", "0.1.100"]
30864
+ children: ["v", "0.1.102"]
30865
30865
  }),
30866
30866
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
30867
30867
  type: "button",
@@ -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-Clvk1weS.cjs.map
1462
+ //# sourceMappingURL=qr-http-server-B7DsRdN1.cjs.map