{"_id":"@ait-co/debugger","_rev":"3-1e7035d7411c96777a9e391ddf815e9a","name":"@ait-co/debugger","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.1":{"name":"@ait-co/debugger","version":"0.1.1","keywords":["apps-in-toss","toss","mini-app","debugger","mcp","cdp","relay","test-runner","devtools"],"license":"BSD-3-Clause","_id":"@ait-co/debugger@0.1.1","maintainers":[{"name":"davedev42","email":"dave.dev@icloud.com"}],"homepage":"https://www.npmjs.com/package/@ait-co/debugger","bugs":{"url":"https://github.com/apps-in-toss-community/debugger/issues"},"bin":{"debugger":"./dist/mcp/cli.js","debugger-test":"./dist/test-runner/bin.js"},"dist":{"shasum":"c5690e895bef6c161adfad73a0b16a7e626aaf19","tarball":"https://registry.npmjs.org/@ait-co/debugger/-/debugger-0.1.1.tgz","fileCount":126,"integrity":"sha512-YB+LedwZEr9SSOuo42P+ZLf+j7SB/jMg2j4BIfx4eRcXrw4TScViQEWl4wCXrkTWL6dXnYtT8XZdyfsMGxoQkA==","signatures":[{"sig":"MEUCIGcNfvt3jJ53HfXG03Cx6XeQcU7Wuyx/vqO8aJ818bXjAiEAuX35WehMDlmUzE7IDweQCzdpKe3ewCluDxWdhJt2BKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5325799},"type":"module","engines":{"node":">=24"},"exports":{"./mcp/cli":{"types":"./dist/mcp/cli.d.ts","import":"./dist/mcp/cli.js"},"./dev-bridge":{"types":"./dist/dev-bridge/index.d.ts","import":"./dist/dev-bridge/index.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./test-runner":{"types":"./dist/test-runner/config.d.ts","import":"./dist/test-runner/config.js"}},"scripts":{"dev":"tsdown --watch","lint":"biome check .","test":"vitest run","build":"pnpm build:dashboard-html && tsdown","format":"biome format --write .","lint:fix":"biome check --write .","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.test.json && tsc --noEmit -p scripts/tsconfig.json","build:dashboard-html":"tsx --tsconfig scripts/tsconfig.json scripts/build-dashboard-html.ts","check:mcp-react-free":"bash scripts/check-mcp-react-free.sh","check:test-runner-dist":"bash scripts/check-test-runner-dist.sh","check:dashboard-html-fresh":"pnpm build:dashboard-html && git diff --exit-code src/mcp/dashboard.generated.ts","check:debug-surface-absent":"bash scripts/check-debug-surface-absent.sh"},"_npmUser":{"name":"davedev42","email":"dave.dev@icloud.com"},"repository":{"url":"https://github.com/apps-in-toss-community/debugger","type":"git","directory":"packages/debugger"},"description":"MCP debugging daemon, on-device CDP relay, test runner, and dev bridge for Apps in Toss mini-apps — devDependency / npx tooling, never part of a production bundle","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.21.0","chii":"^1.15.5","qrcode":"^1.5.4","esbuild":"^0.28.1","cloudflared":"^0.7.1","@vitest/runner":"^4.1.9","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vite":"^8.0.16","jsdom":"^29.0.2","react":"^19.2.7","tsdown":"^0.22.0","vitest":"^4.1.4","@types/ws":"^8.18.0","react-dom":"^19.2.7","typescript":"^6.0.2","@types/node":"^25.6.2","@types/react":"^19.2.17","@types/qrcode":"^1.5.6","@biomejs/biome":"2.5.1","@types/react-dom":"^19.2.3","@ait-co/debug-console":"0.1.1","@ait-co/internal-protocol":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/debugger_0.1.1_1785156892283_0.1004078530280641","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ait-co/debugger","version":"0.1.3","keywords":["apps-in-toss","toss","mini-app","debugger","mcp","cdp","relay","test-runner","devtools"],"license":"BSD-3-Clause","_id":"@ait-co/debugger@0.1.3","maintainers":[{"name":"davedev42","email":"dave.dev@icloud.com"}],"homepage":"https://www.npmjs.com/package/@ait-co/debugger","bugs":{"url":"https://github.com/apps-in-toss-community/debugger/issues"},"bin":{"debugger":"./dist/mcp/cli.js","debugger-test":"./dist/test-runner/bin.js"},"dist":{"shasum":"2b4f9910729c2c38f49e3eb796e3580d7394c09a","tarball":"https://registry.npmjs.org/@ait-co/debugger/-/debugger-0.1.3.tgz","fileCount":130,"integrity":"sha512-Ij1yt+lNJeJfJIYEuzYF6gag7wMwhd1zKGsXFfelW+GM7qGiNB3b6mUSWXHhyJVBkzIyZ7nDZozD25hieYwt2Q==","signatures":[{"sig":"MEUCIQCwJpJ031XqbHINypx5CNPLm8fHSp3ZVjPSVO8rJj3KqgIgPPk0kP4eM38meDYmVUDtFvqGixlWyjbtWbQSa0TSJnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ait-co%2fdebugger@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5449152},"type":"module","engines":{"node":">=24"},"exports":{"./mcp/cli":{"types":"./dist/mcp/cli.d.ts","import":"./dist/mcp/cli.js"},"./dev-bridge":{"types":"./dist/dev-bridge/index.d.ts","import":"./dist/dev-bridge/index.js"},"./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./test-runner":{"types":"./dist/test-runner/config.d.ts","import":"./dist/test-runner/config.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"biome check .","test":"vitest run","build":"pnpm build:dashboard-html && tsdown","format":"biome format --write .","lint:fix":"biome check --write .","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.test.json && tsc --noEmit -p scripts/tsconfig.json","build:dashboard-html":"tsx --tsconfig scripts/tsconfig.json scripts/build-dashboard-html.ts","check:mcp-react-free":"bash scripts/check-mcp-react-free.sh","check:test-runner-dist":"bash scripts/check-test-runner-dist.sh","check:dashboard-html-fresh":"pnpm build:dashboard-html && git diff --exit-code src/mcp/dashboard.generated.ts","check:debug-surface-absent":"bash scripts/check-debug-surface-absent.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:34e74675-d205-46c6-9d4b-8273139f4fdc"}},"repository":{"url":"https://github.com/apps-in-toss-community/debugger","type":"git","directory":"packages/debugger"},"description":"MCP debugging daemon, on-device CDP relay, test runner, and dev bridge for Apps in Toss mini-apps — devDependency / npx tooling, never part of a production bundle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","chii":"^1.15.5","qrcode":"^1.5.4","esbuild":"^0.28.1","cloudflared":"^0.7.1","@vitest/runner":"^4.1.9","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vite":"^8.0.16","jsdom":"^29.0.2","react":"^19.2.7","tsdown":"^0.22.0","vitest":"^4.1.4","@types/ws":"^8.18.0","react-dom":"^19.2.7","typescript":"^6.0.2","@types/node":"^25.6.2","@types/react":"^19.2.17","@types/qrcode":"^1.5.6","@biomejs/biome":"2.5.1","@types/react-dom":"^19.2.3","@ait-co/debug-console":"0.1.3","@ait-co/internal-protocol":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/debugger_0.1.3_1785221989087_0.9324844102762779","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@ait-co/debugger","version":"0.1.4","description":"MCP debugging daemon, on-device CDP relay, test runner, and dev bridge for Apps in Toss mini-apps — devDependency / npx tooling, never part of a production bundle","type":"module","engines":{"node":">=24"},"bin":{"debugger":"./dist/mcp/cli.js","debugger-test":"./dist/test-runner/bin.js"},"exports":{"./package.json":"./package.json","./mcp/server":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./mcp/cli":{"types":"./dist/mcp/cli.d.ts","import":"./dist/mcp/cli.js"},"./test-runner":{"types":"./dist/test-runner/config.d.ts","import":"./dist/test-runner/config.js"},"./dev-bridge":{"types":"./dist/dev-bridge/index.d.ts","import":"./dist/dev-bridge/index.js"}},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@vitest/runner":"^4.1.9","chii":"^1.15.5","cloudflared":"^0.7.1","esbuild":"^0.28.1","qrcode":"^1.5.4","ws":"^8.21.0"},"devDependencies":{"@biomejs/biome":"2.5.1","@types/node":"^25.6.2","@types/qrcode":"^1.5.6","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@types/ws":"^8.18.0","jsdom":"^29.0.2","react":"^19.2.7","react-dom":"^19.2.7","tsdown":"^0.22.0","tsx":"^4.22.4","typescript":"^6.0.2","vite":"^8.0.16","vitest":"^4.1.4","@ait-co/debug-console":"0.1.4","@ait-co/internal-protocol":"0.0.0"},"keywords":["apps-in-toss","toss","mini-app","debugger","mcp","cdp","relay","test-runner","devtools"],"license":"BSD-3-Clause","publishConfig":{"access":"public"},"repository":{"type":"git","url":"https://github.com/apps-in-toss-community/debugger","directory":"packages/debugger"},"homepage":"https://www.npmjs.com/package/@ait-co/debugger","bugs":{"url":"https://github.com/apps-in-toss-community/debugger/issues"},"scripts":{"build:dashboard-html":"tsx --tsconfig scripts/tsconfig.json scripts/build-dashboard-html.ts","build":"pnpm build:dashboard-html && tsdown","check:mcp-react-free":"bash scripts/check-mcp-react-free.sh","check:test-runner-dist":"bash scripts/check-test-runner-dist.sh","check:debug-surface-absent":"bash scripts/check-debug-surface-absent.sh","check:dashboard-html-fresh":"pnpm build:dashboard-html && git diff --exit-code src/mcp/dashboard.generated.ts","dev":"tsdown --watch","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.test.json && tsc --noEmit -p scripts/tsconfig.json","test":"vitest run","lint":"biome check .","lint:fix":"biome check --write .","format":"biome format --write ."},"_nodeVersion":"24.18.0","_id":"@ait-co/debugger@0.1.4","dist":{"integrity":"sha512-+aR7APN128Zn2rStLPMg8LHY/8qvoKAtnXG6pyeH9CSZk+WJHRRK9GgFwHVZbfKe65YAlqe+/2Lka2n1F7rfhw==","shasum":"7cf4e03ac34fda5ab4af1d1115b19ec4dc3a69a9","tarball":"https://registry.npmjs.org/@ait-co/debugger/-/debugger-0.1.4.tgz","fileCount":130,"unpackedSize":5484327,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ait-co%2fdebugger@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDW9+H3pCt2TSYPuAW9DEhH2Vng9B6YEGAxeYSlTvB4DAiEAtGwObAqJFkMShEXOjF0VQhrUcOV5dBj3bwHH7IqQK70="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:34e74675-d205-46c6-9d4b-8273139f4fdc"}},"directories":{},"maintainers":[{"name":"davedev42","email":"dave.dev@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/debugger_0.1.4_1785608404459_0.7742112649779882"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-27T12:54:52.049Z","modified":"2026-08-01T18:20:04.999Z","0.1.1":"2026-07-27T12:54:52.530Z","0.1.3":"2026-07-28T06:59:49.276Z","0.1.4":"2026-08-01T18:20:04.642Z"},"bugs":{"url":"https://github.com/apps-in-toss-community/debugger/issues"},"license":"BSD-3-Clause","homepage":"https://www.npmjs.com/package/@ait-co/debugger","keywords":["apps-in-toss","toss","mini-app","debugger","mcp","cdp","relay","test-runner","devtools"],"repository":{"type":"git","url":"https://github.com/apps-in-toss-community/debugger","directory":"packages/debugger"},"description":"MCP debugging daemon, on-device CDP relay, test runner, and dev bridge for Apps in Toss mini-apps — devDependency / npx tooling, never part of a production bundle","maintainers":[{"name":"davedev42","email":"dave.dev@icloud.com"}],"readme":"# @ait-co/debugger\n\n**한국어** · [English](./README.en.md)\n\n[![npm](https://img.shields.io/npm/v/@ait-co/debugger)](https://www.npmjs.com/package/@ait-co/debugger)\n[![license](https://img.shields.io/badge/license-BSD--3--Clause-blue)](./LICENSE)\n\n앱인토스(Apps in Toss) 미니앱을 위한 원격 디버깅 인프라 — MCP 디버깅 데몬, on-device CDP relay, test runner, dev bridge를 한 패키지에 담는다. **devDependency / `npx` 전용이며, 이 패키지의 코드는 프로덕션 번들에 절대 들어가지 않는다.** 루트(`.`) export가 없다는 사실이 그 경계를 그대로 드러낸다 — 임의로 앱 코드에 import할 수 있는 표면 자체가 존재하지 않는다.\n\n이 프로젝트는 더 이상 유지보수되지 않는다. repo는 archive되어 read-only가 되지만 소스와 이슈 기록은 GitHub에 그대로 남고, 이 패키지도 npm에서 계속 설치할 수 있다 — 다만 더 이상 업데이트되지 않는다. `aitc.dev` 도메인과 그 위에서 돌던 사이트는 종료되므로, 문서는 [`docs`](https://github.com/apps-in-toss-community/docs) repo의 소스 파일에서 본다. 실기기 attach에 쓰는 launcher PWA도 같은 도메인(`devtools.aitc.dev/launcher/`)에 있어 함께 사라진다 — `start_attach`가 만드는 attach 딥링크가 이 호스트를 가리키므로, 도메인이 내려간 뒤에는 이 경로가 동작하지 않는다. 대체 호스트가 없어 상수 값은 그대로 두었다.\n\n## 설치\n\n```sh\npnpm add -D @ait-co/debugger\n```\n\n설치 없이 바로 실행하려면 `npx`를 쓴다. **패키지 이름(`@ait-co/debugger`)과 bin 이름(`debugger`)이 다르므로 반드시 `-p` 형태로 호출한다** — bare `npx @ait-co/debugger`는 동작하지 않는다:\n\n```sh\nnpx -p @ait-co/debugger debugger\nnpx -p @ait-co/debugger debugger-test --help\n```\n\n## 사용\n\n### MCP 디버깅 데몬 (`debugger`)\n\n에이전트의 MCP 클라이언트 설정에 등록한다. 서버 id는 `ait-devtools`로 고정되어 있다(패키지 분리 이전 이름을 그대로 유지 — 아래 참조):\n\n```json\n{\n  \"mcpServers\": {\n    \"ait-devtools\": {\n      \"command\": \"npx\",\n      \"args\": [\"-p\", \"@ait-co/debugger\", \"debugger\"]\n    }\n  }\n}\n```\n\n기본 동작은 `--mode=debug --target=relay`(실기기 attach)다. 로컬 브라우저만 붙일 때는 `--target=local`을 쓰고, 대상 dev 서버 주소는 로컬 루프백만 사용한다:\n\n```sh\nAIT_DEVTOOLS_URL=http://127.0.0.1:5173 npx -p @ait-co/debugger debugger --target=local\n```\n\n### Test runner (`debugger-test`)\n\n실기기 토스 앱 WebView에서 테스트 파일을 실행한다. `--scheme-url`은 `ait deploy --scheme-only`(별개 CLI, 아래 참조)가 출력하는 `intoss-private://` URL을 그대로 받는다:\n\n```sh\nnpx -p @ait-co/debugger debugger-test 'tests/**/*.ait.test.ts' --scheme-url <scheme-url-from-ait-deploy>\n```\n\n`test-runner` 설정 헬퍼는 서브패스로 import한다:\n\n```ts\n// ait-test.config.ts\nimport { definePhoneTestConfig } from '@ait-co/debugger/test-runner';\n\nexport default definePhoneTestConfig({\n  include: ['**/*.ait.test.ts'],\n});\n```\n\n## Exports / bin\n\n| subpath | 내용 |\n|---|---|\n| `@ait-co/debugger/mcp/server` | dev-mode MCP 서버 — 실행 중인 Vite dev 서버의 mock 상태를 노출 |\n| `@ait-co/debugger/mcp/cli` | MCP debug/dev 서버 CLI 엔트리 (bin `debugger`가 여기로 연결) |\n| `@ait-co/debugger/test-runner` | test-runner 설정 헬퍼(`definePhoneTestConfig`) + 타입 |\n| `@ait-co/debugger/dev-bridge` | env-2 dev 단계에서 쓰는 로컬 대시보드(`http://127.0.0.1:<port>`) 기동 헬퍼 |\n\n루트(`.`) export는 의도적으로 없다 — 이 패키지는 항상 위 4개 서브패스 중 하나로만 접근한다.\n\n| bin | 역할 |\n|---|---|\n| `debugger` | MCP 디버깅 데몬 (기본 `--mode=debug --target=relay`) |\n| `debugger-test` | on-device WebView test runner CLI |\n\n## `@ait-co/devtools`와의 관계\n\n`@ait-co/devtools`는 mock SDK · DevTools 패널 · unplugin(브라우저 dev 환경, station 2)을 담당하고, `@ait-co/debugger`는 실기기 디버깅(MCP 데몬 · CDP relay · test runner · dev bridge, station 3)을 담당한다. 두 패키지 모두 devDependency 전용이라는 점은 같지만, 8개 기능 표면을 하나의 `devtools` 패키지에 담던 이전 구조를 이번 분리에서 \"브라우저 dev 환경\"과 \"실기기 디버깅\"으로 나눈 결과다. `devtools`의 unplugin이 노출하는 `mcp: true` 옵션(dev-mode MCP endpoint 등록)은 devtools 쪽에 그대로 남아 있는 표면이며, 이 패키지가 그 endpoint를 dev-mode에서 읽어온다. 실기기 attach 시에는 `@ait-co/debug-console`이 in-app 쪽 카운터파트가 된다 — 이 패키지의 relay가 phone 쪽에서 attach되는 대상이 `@ait-co/debug-console`이 주입하는 Chii 타겟이다.\n\n## 보안 스코프\n\n이 패키지는 **devDependency / `npx` 전용**이다. `@ait-co/debug-console`을 dependency나 자동 설치 peer로 선언하지 않는다 — 그렇게 하면 `eruda`가 데몬의 설치 그래프에 들어와 \"데몬에는 debug 표면이 없다\"는 불변식이 조용히 깨진다. 데몬 번들에는 `react`/`react-dom`도 포함되지 않는다.\n\n이 패키지는 원격 디버깅 인프라이므로 시크릿을 다룬다. 다음은 어떤 출력(stdout/stderr/로그/에러 메시지)에도 절대 나타나서는 안 된다: TOTP 시크릿·생성된 코드, relay `wss://` URL과 trycloudflare 터널 호스트, `at=` 파라미터가 붙은 딥링크, Deploy Key. 로그에 안전하게 남길 수 있는 것은 `http://127.0.0.1:<port>` 형태의 로컬 주소뿐이다.\n\n## 관련 CLI 구분\n\n이 생태계에는 이름이 비슷한 서로 다른 CLI 두 개가 있다 — 혼동하지 않는다:\n\n- **`ait`** (`@apps-in-toss/cli`) — 번들러. `ait build`로 `.ait` 번들을 만들고, `ait deploy --scheme-only`가 위 test runner 예시의 `--scheme-url`에 들어가는 `intoss-private://` URL을 출력한다.\n- **`aitcc`** (콘솔 자동화 CLI) — 앱인토스 콘솔 등록·배포·조회. 이 패키지는 `aitcc`를 호출하지 않는다.\n\n## 라이선스\n\nBSD-3-Clause\n\n---\n\n커뮤니티 오픈소스 프로젝트입니다.\n","readmeFilename":""}