@modootoday/datalab-extension-mcp 1.11.2 → 1.11.3

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/README.en.md CHANGED
@@ -61,7 +61,7 @@ One command finds **every** AI app on your computer and connects them automatica
61
61
  2. **Paste this command and press Enter.** The saved command names an exact bootstrap version. At startup and while idle, the connector checks the canonical release and promotes itself to the current secure, compatible version. Diagnostic environments can opt out with `--no-self-update`.
62
62
 
63
63
  ```
64
- npx -y @modootoday/datalab-extension-mcp@1.11.2 install
64
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 install
65
65
  ```
66
66
 
67
67
  Lines of English scrolling by is normal. This only downloads and runs the connector — it touches nothing else.
@@ -151,10 +151,10 @@ diagnosis, Place reputation, Pumasi, photo/video production, and automatic tool
151
151
  discovery. Press Enter to keep the recommended set.
152
152
 
153
153
  ```
154
- npx -y @modootoday/datalab-extension-mcp@1.11.2 skills list
155
- npx -y @modootoday/datalab-extension-mcp@1.11.2 skills status
156
- npx -y @modootoday/datalab-extension-mcp@1.11.2 skills attach <name>
157
- npx -y @modootoday/datalab-extension-mcp@1.11.2 skills detach <name>
154
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 skills list
155
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 skills status
156
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 skills attach <name>
157
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 skills detach <name>
158
158
  ```
159
159
 
160
160
  - `list` shows everything in this version, name and description.
@@ -244,7 +244,7 @@ Exactly what it says. Open Chrome, keep the DataLab Tools side panel open, and i
244
244
 
245
245
  That's expected — **it's deliberate.**
246
246
 
247
- There are 211 tools. Sending all of them as a list runs into the cap each AI app
247
+ There are 213 tools. Sending all of them as a list runs into the cap each AI app
248
248
  sets: some quietly drop whatever doesn't fit, some refuse the connection outright.
249
249
  So only the discovery tools go in the list, and **the rest are selected from the
250
250
  user's intent and handed over as an answer.**
@@ -275,7 +275,7 @@ Start it again after a full quit and it picks the tools up. If they still aren't
275
275
  - **When the connection disappears** — run the very command you used at the start once more; it safely re-registers. (Some AI apps clean up their settings file and drop the connection.)
276
276
 
277
277
  ```
278
- npx -y @modootoday/datalab-extension-mcp@1.11.2 install
278
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 install
279
279
  ```
280
280
 
281
281
  - **`'npx' is not recognized...`** — Node.js isn't installed. The "No Node.js?" one-liner in Step 2 is the simplest fix.
@@ -305,7 +305,7 @@ Start it again after a full quit and it picks the tools up. If they still aren't
305
305
  1. Run this in a terminal (it removes the entries registered in your AI apps).
306
306
 
307
307
  ```
308
- npx -y @modootoday/datalab-extension-mcp@1.11.2 uninstall
308
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 uninstall
309
309
  ```
310
310
 
311
311
  2. Turn **MCP 연결** off in the extension settings. The panel is the bridge, so with it off a leftover config line can look nothing up.
@@ -322,6 +322,7 @@ Deleting the extension also renders any leftover connector inert. A leftover lin
322
322
  - **Do I keep it always on?** No. It connects only while the panel is open.
323
323
  - **What data does it read?** Blog stats, keywords, ads — what DataLab Tools shows. Scoped to the Naver account you're logged into in Chrome.
324
324
  - **Other computers?** Yes, but set it up once per computer; the connection key is per-computer too.
325
+
325
326
  </details>
326
327
 
327
328
  ## Developer appendix
package/README.md CHANGED
@@ -55,7 +55,7 @@ Claude 같은 AI 앱을 데이터랩툴즈에 연결해 주는 작은 무료 프
55
55
  2. **아래 명령을 붙여넣고 Enter를 눌러요.** 저장되는 명령은 정확한 시작 버전을 적습니다. 연결 프로그램은 시작할 때와 유휴 상태에서 정본 릴리스를 확인해 현재의 안전하고 호환되는 버전으로 승격합니다. 진단 환경에서는 `--no-self-update`로 승격을 끌 수 있어요.
56
56
 
57
57
  ```
58
- npx -y @modootoday/datalab-extension-mcp@1.11.2 install
58
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 install
59
59
  ```
60
60
 
61
61
  영어 글자가 여러 줄 올라오는 건 정상이에요. 이 명령은 연결 프로그램을 다운로드해 실행할 뿐, 다른 건 건드리지 않아요.
@@ -137,10 +137,10 @@ Claude 같은 AI 앱을 데이터랩툴즈에 연결해 주는 작은 무료 프
137
137
  도움말을 번호로 여러 개 고를 수 있어요. Enter를 누르면 추천 구성만 설치됩니다.
138
138
 
139
139
  ```
140
- npx -y @modootoday/datalab-extension-mcp@1.11.2 skills list
141
- npx -y @modootoday/datalab-extension-mcp@1.11.2 skills status
142
- npx -y @modootoday/datalab-extension-mcp@1.11.2 skills attach <이름>
143
- npx -y @modootoday/datalab-extension-mcp@1.11.2 skills detach <이름>
140
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 skills list
141
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 skills status
142
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 skills attach <이름>
143
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 skills detach <이름>
144
144
  ```
145
145
 
146
146
  - `list` 는 이 버전에 들어 있는 전부를 이름과 설명으로 보여 줘요.
@@ -214,7 +214,7 @@ MCP 를 켜 두었지만 **네이버 페이지가 한 곳도 열려 있지 않
214
214
 
215
215
  정상이에요. **일부러 그렇게 보냅니다.**
216
216
 
217
- 전체 도구는 211개인데, 그걸 전부 목록으로 보내면 AI 앱마다 정해 둔 상한에 걸려요.
217
+ 전체 도구는 213개인데, 그걸 전부 목록으로 보내면 AI 앱마다 정해 둔 상한에 걸려요.
218
218
  어떤 앱은 넘치는 만큼 조용히 잘라내고, 어떤 앱은 아예 연결을 거부해요. 그래서 자주 쓰는
219
219
  탐색 도구만 목록에 올리고, 나머지는 **AI가 요청 의도를 찾아 답으로 건네받습니다.**
220
220
 
@@ -242,7 +242,7 @@ AI가 "그런 기능은 없다" 고 답하면, **"숨은 도구를 찾아보고
242
242
  - **연결이 사라졌을 때** — 처음 실행했던 그 명령을 한 번 더 실행하면 안전하게 다시 등록돼요. (일부 AI 앱이 설정 파일을 정리하며 연결을 지우기도 해요.)
243
243
 
244
244
  ```
245
- npx -y @modootoday/datalab-extension-mcp@1.11.2 install
245
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 install
246
246
  ```
247
247
 
248
248
  - **`'npx'을(는) 내부 또는 외부 명령...`** — Node.js가 없는 거예요. 위 2단계의 "Node.js가 없다면" 한 줄 설치가 가장 간단해요.
@@ -272,7 +272,7 @@ AI가 "그런 기능은 없다" 고 답하면, **"숨은 도구를 찾아보고
272
272
  1. 터미널에서 아래 명령을 실행해요(AI 앱에 등록된 설정을 지워 줘요).
273
273
 
274
274
  ```
275
- npx -y @modootoday/datalab-extension-mcp@1.11.2 uninstall
275
+ npx -y @modootoday/datalab-extension-mcp@1.11.3 uninstall
276
276
  ```
277
277
 
278
278
  2. 확장 설정에서 **MCP 연결을 꺼요.** 패널이 브릿지라, 꺼 두면 어딘가 설정 줄이 남아 있어도 AI 앱이 아무것도 조회할 수 없어요.
@@ -289,6 +289,7 @@ AI가 "그런 기능은 없다" 고 답하면, **"숨은 도구를 찾아보고
289
289
  - **항상 켜 둬야 하나요?** 아니요. 패널이 열려 있을 때만 연결돼요.
290
290
  - **어떤 데이터를 읽나요?** 블로그 통계·키워드·광고 등 데이터랩툴즈가 보여 주는 것들이에요. 기준은 지금 Chrome에 로그인해 둔 네이버 계정이에요.
291
291
  - **다른 컴퓨터에서도 되나요?** 네. 컴퓨터마다 한 번씩 설치하고, 연결 키도 컴퓨터마다 따로예요.
292
+
292
293
  </details>
293
294
 
294
295
  ## 개발자 부록
@@ -2,7 +2,7 @@ import {
2
2
  __export
3
3
  } from "./chunk-MLKGABMK.js";
4
4
 
5
- // ../mcp-server/dist/chunk-X7PKNPNJ.js
5
+ // ../mcp-server/dist/chunk-PCVVHMPP.js
6
6
  import { createHash } from "crypto";
7
7
  import { createHash as createHash2, randomUUID } from "crypto";
8
8
  import { mkdir, readFile, readdir, rm, writeFile } from "fs/promises";
@@ -20074,6 +20074,8 @@ var TOOL_TIERS = Object.freeze({
20074
20074
  // ── Post editor: reads ──────────────────────────────────────────
20075
20075
  editor_read: "read",
20076
20076
  editor_read_structure: "read",
20077
+ editor_read_document: "read",
20078
+ editor_operation_status: "read",
20077
20079
  // ── Post editor: writes ─────────────────────────────────────────
20078
20080
  //
20079
20081
  // Every injection is bracketed by a vendor autosave, plus a separate copy
@@ -42888,6 +42890,8 @@ var TOOL_TIERS2 = Object.freeze({
42888
42890
  // ── Post editor: reads ──────────────────────────────────────────
42889
42891
  editor_read: "read",
42890
42892
  editor_read_structure: "read",
42893
+ editor_read_document: "read",
42894
+ editor_operation_status: "read",
42891
42895
  // ── Post editor: writes ─────────────────────────────────────────
42892
42896
  //
42893
42897
  // Every injection is bracketed by a vendor autosave, plus a separate copy
@@ -43631,6 +43635,7 @@ async function pushToolChanges(deps) {
43631
43635
  prev = wait;
43632
43636
  }
43633
43637
  }
43638
+ var SESSION_EXIT_GRACE_MS = 200;
43634
43639
  async function selfUpdateAndRestart(selfVersion, log, deps = {}) {
43635
43640
  if (!selfVersion) return false;
43636
43641
  const target = await (deps.resolve ?? canonicalVersion)();
@@ -43699,11 +43704,22 @@ async function runAdapter(deps = {}) {
43699
43704
  const port = deps.port ?? DEFAULT_PORT;
43700
43705
  const controller = new AbortController();
43701
43706
  const prevOnClose = transport.onclose;
43707
+ const exit = deps.exit ?? (deps.transport ? null : process.exit.bind(process));
43702
43708
  transport.onclose = () => {
43703
43709
  if (watch) clearInterval(watch);
43704
43710
  controller.abort();
43705
43711
  prevOnClose?.();
43712
+ if (exit) setTimeout(exit, SESSION_EXIT_GRACE_MS, 0);
43706
43713
  };
43714
+ const stdin = deps.stdin ?? (deps.transport ? null : process.stdin);
43715
+ if (stdin) {
43716
+ const endSession = () => {
43717
+ void transport.close().catch(() => {
43718
+ });
43719
+ };
43720
+ stdin.once("end", endSession);
43721
+ stdin.once("close", endSession);
43722
+ }
43707
43723
  void pushToolChanges({
43708
43724
  mcpUrl: `http://${host}:${port}/mcp`,
43709
43725
  notifyHost: () => server.notification({ method: "notifications/tools/list_changed" }).catch(() => {
package/dist/cli.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  dispatchCli,
4
4
  runAdapter,
5
5
  runDaemon
6
- } from "./chunk-U4NWY74P.js";
6
+ } from "./chunk-HGE7QMS4.js";
7
7
  import "./chunk-MLKGABMK.js";
8
8
 
9
9
  // src/cli.ts
@@ -15,7 +15,7 @@ function log(message) {
15
15
  `);
16
16
  }
17
17
  async function runInstaller(sub, argv) {
18
- const { createNodeIo, runInstall, runUninstall } = await import("./dist-X23C5DSV.js");
18
+ const { createNodeIo, runInstall, runUninstall } = await import("./dist-V4J6UN5K.js");
19
19
  const opts = { version: VERSION };
20
20
  for (let i = 0; i < argv.length; i += 1) {
21
21
  const flag = argv[i];
@@ -72,7 +72,7 @@ async function main() {
72
72
  attachSkill,
73
73
  detachSkill,
74
74
  skillsPayloadRoot
75
- } = await import("./dist-X23C5DSV.js");
75
+ } = await import("./dist-V4J6UN5K.js");
76
76
  const io = createNodeIo();
77
77
  const root = skillsPayloadRoot();
78
78
  const code = await runSkills(argv, {
@@ -2185,7 +2185,7 @@ async function runInstall(opts, io) {
2185
2185
  if (staged === null || staged.length === 0) {
2186
2186
  printBody(
2187
2187
  (line) => io.out(line),
2188
- "\uC774 \uC124\uCE58 \uD30C\uC77C\uC5D0\uB294 \uC2A4\uD0AC\uC774 \uC5C6\uC5B4 \uC5F0\uACB0 \uD504\uB85C\uADF8\uB7A8\uB9CC \uC124\uCE58\uD569\uB2C8\uB2E4."
2188
+ "\uC774 \uC124\uCE58 \uD30C\uC77C\uC5D0\uB294 \uC2A4\uD0AC\uC774 \uC5C6\uC5B4 \uC5F0\uACB0 \uD504\uB85C\uADF8\uB7A8\uB9CC \uC124\uCE58\uD574\uC694."
2189
2189
  );
2190
2190
  } else {
2191
2191
  skillPlan = await chooseSkillSelection(io, staged, {
@@ -2199,7 +2199,7 @@ async function runInstall(opts, io) {
2199
2199
  }
2200
2200
  printBody(
2201
2201
  (line) => io.out(line),
2202
- `\uCD94\uCC9C ${skillPlan.defaultCount}\uAC1C + \uC120\uD0DD ${skillPlan.selected.size}\uAC1C = ${skillPlan.total}\uAC1C\uB97C \uC124\uCE58\uD569\uB2C8\uB2E4.`
2202
+ `\uCD94\uCC9C ${skillPlan.defaultCount}\uAC1C + \uC120\uD0DD ${skillPlan.selected.size}\uAC1C = ${skillPlan.total}\uAC1C\uB97C \uC124\uCE58\uD574\uC694.`
2203
2203
  );
2204
2204
  }
2205
2205
  }
package/dist/index.d.ts CHANGED
@@ -132,6 +132,10 @@ interface RunAdapterDeps extends AdapterServerDeps {
132
132
  subscribe?: SubscribeImpl;
133
133
  /** false pins this build — `--no-self-update`. Default promotes to canonical. */
134
134
  selfUpdate?: boolean;
135
+ /** Injected in tests; the host's end of the session. Defaults to process.stdin. */
136
+ stdin?: NodeJS.EventEmitter;
137
+ /** Injected in tests; defaults to process.exit. */
138
+ exit?: (code: number) => void;
135
139
  }
136
140
  declare function runAdapter(deps?: RunAdapterDeps): Promise<void>;
137
141
  interface CliHandlers {
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  dispatchCli,
4
4
  ensureDaemonRunning,
5
5
  runAdapter
6
- } from "./chunk-U4NWY74P.js";
6
+ } from "./chunk-HGE7QMS4.js";
7
7
  import "./chunk-MLKGABMK.js";
8
8
  export {
9
9
  createAdapterServer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modootoday/datalab-extension-mcp",
3
- "version": "1.11.2",
3
+ "version": "1.11.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",