{"id":51064493,"url":"https://github.com/mylee04/agent-log-digest","last_synced_at":"2026-06-23T05:31:02.252Z","repository":{"id":363689231,"uuid":"1264481907","full_name":"mylee04/agent-log-digest","owner":"mylee04","description":"Stop feeding agents noisy logs. Give them the exact failure digest.","archived":false,"fork":false,"pushed_at":"2026-06-09T23:59:22.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T01:13:15.468Z","etag":null,"topics":["ai","ai-coding-agent","build","cli","codex","eslint","jest","lint","logs","typescript","vitest"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/agent-log-digest","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mylee04.png","metadata":{"files":{"readme":"README.ko.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-09T23:31:05.000Z","updated_at":"2026-06-10T00:27:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mylee04/agent-log-digest","commit_stats":null,"previous_names":["mylee04/agent-log-digest"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mylee04/agent-log-digest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylee04%2Fagent-log-digest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylee04%2Fagent-log-digest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylee04%2Fagent-log-digest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylee04%2Fagent-log-digest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mylee04","download_url":"https://codeload.github.com/mylee04/agent-log-digest/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylee04%2Fagent-log-digest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34677381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-coding-agent","build","cli","codex","eslint","jest","lint","logs","typescript","vitest"],"created_at":"2026-06-23T05:31:01.631Z","updated_at":"2026-06-23T05:31:02.248Z","avatar_url":"https://github.com/mylee04.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# agent-log-digest\n\n[![npm version](https://img.shields.io/npm/v/agent-log-digest)](https://www.npmjs.com/package/agent-log-digest)\n[![npm downloads](https://img.shields.io/npm/dw/agent-log-digest)](https://www.npmjs.com/package/agent-log-digest)\n[![CI](https://github.com/mylee04/agent-log-digest/actions/workflows/ci.yml/badge.svg)](https://github.com/mylee04/agent-log-digest/actions/workflows/ci.yml)\n[![GitHub stars](https://img.shields.io/github/stars/mylee04/agent-log-digest)](https://github.com/mylee04/agent-log-digest)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n\n[English README](./README.md)\n\n테스트, 린트, 타입체크, 빌드 로그처럼 길고 시끄러운 출력을 AI 코딩 에이전트가 바로 읽을 수 있는 간결한 JSON으로 정리합니다.\n\n`agent-log-digest`는 로컬에서만 동작하는 Node CLI입니다. 명령을 감싸서 실행하거나 이미 저장된 로그 파일을 파싱하고, 기본적으로 민감 정보를 가린 뒤, 알려진 도구의 출력 형식을 감지해 결정적인 digest를 만듭니다. 텔레메트리, 호스팅 서비스, LLM 호출은 없습니다.\n\n이 CLI가 시간을 아껴줬다면 [GitHub 저장소에 star](https://github.com/mylee04/agent-log-digest)를 눌러 주세요. 다른 개발자가 AI 코딩 에이전트용 로컬 전용 도구를 찾는 데 도움이 됩니다.\n\n## 설치\n\n```bash\nnpm install -D agent-log-digest\n```\n\n초기 테스트에서는 `npx`로 바로 실행할 수 있습니다.\n\n```bash\nnpx agent-log-digest --json -- npm test\n```\n\n## 사용법\n\n명령을 감싸서 실행하고 원래 exit code를 유지합니다.\n\n```bash\nagent-log-digest --json -- npm run typecheck\n```\n\n저장된 로그 파일을 파싱합니다.\n\n```bash\nagent-log-digest parse ./logs/eslint.log --tool eslint --json --output ./digest.json\n```\n\n실패한 명령을 digest에는 기록하되 CI 단계는 통과시키고 싶다면 `--always-zero`를 사용합니다.\n\n```bash\nagent-log-digest --json --always-zero -- npm test\n```\n\n가려진 원본 로그를 digest와 함께 저장합니다.\n\n```bash\nagent-log-digest --json --raw-log ./raw.log --output ./digest.json -- npm test\n```\n\n로컬 실행 환경을 점검합니다.\n\n```bash\nagent-log-digest doctor --json\n```\n\n프로젝트 URL을 출력합니다.\n\n```bash\nagent-log-digest repo\n```\n\n로컬 예시 파일을 명시적으로 생성합니다.\n\n```bash\nagent-log-digest init\n```\n\n## CI 예시\n\nCI 단계는 통과시키면서 에이전트가 읽을 구조화 digest를 저장합니다.\n\n```yaml\n- name: Test with digest\n  run: npx agent-log-digest --json --always-zero --output ./agent-log-digest.json -- npm test\n```\n\n## Before and After\n\nTypeScript 로그:\n\n```text\nsrc/user.ts(3,7): error TS2322: Type string is not assignable to number.\n```\n\nDigest 요약:\n\n```json\n{\"status\":\"failed\",\"detectedTools\":[\"typescript\"],\"summary\":{\"headline\":\"TypeScript failed with 1 error in 1 file.\"}}\n```\n\nVite build 로그:\n\n```text\n[vite]: Rollup failed to resolve import \"./missing\" from \"src/main.ts\".\nfile: /repo/src/main.ts:3:18\n```\n\nDigest 요약:\n\n```json\n{\"status\":\"failed\",\"detectedTools\":[\"vite\"],\"nextCommands\":[\"vite build\"]}\n```\n\n## 출력\n\nJSON 출력은 `schemaVersion: \"0.1\"`을 사용합니다.\n\n```json\n{\n  \"schemaVersion\": \"0.1\",\n  \"status\": \"failed\",\n  \"exitCode\": 2,\n  \"command\": \"npm run typecheck\",\n  \"detectedTools\": [\"typescript\"],\n  \"summary\": {\n    \"headline\": \"TypeScript failed with 1 error in 1 file.\",\n    \"errors\": 1,\n    \"warnings\": 0,\n    \"failedTests\": 0,\n    \"filesWithProblems\": 1\n  },\n  \"problems\": []\n}\n```\n\n패키지 루트에서 공개 TypeScript 타입과 헬퍼를 가져올 수 있습니다.\n\n```ts\nimport { SCHEMA_VERSION, createDigest, redactSecrets } from \"agent-log-digest\"\nimport type { AgentLogDigest, Problem } from \"agent-log-digest\"\n```\n\n## 지원하는 파서\n\n- TypeScript `tsc` 진단 출력\n- ESLint JSON formatter 및 최소 stylish 출력\n- Vitest JSON 형식의 실패 테스트 결과\n- Jest JSON 형식의 실패 테스트 결과\n- Next.js 텍스트 build 실패 출력\n- Vite/Rollup 텍스트 build 실패 출력\n- Playwright 텍스트/list reporter 실패 출력\n- 일반 Node 스타일 stack trace 및 `file:line:column` 참조\n\n## CLI 옵션\n\n- `--json`, `--markdown`, `--pretty`: 출력 형식을 선택합니다.\n- `--output \u003cfile\u003e`: 포맷된 digest를 파일로 저장합니다.\n- `--raw-log \u003cfile\u003e`: 캡처한 로그를 민감 정보 제거 후 파일로 저장합니다.\n- `--no-raw-log`: raw log 저장을 비활성화합니다.\n- `--max-errors \u003cn\u003e`: 보고할 문제 수를 제한합니다.\n- `--max-log-bytes \u003cn\u003e`: 캡처할 명령 출력 크기를 제한합니다.\n- `--cwd \u003cdir\u003e`: 다른 작업 디렉터리에서 실행하거나 파싱합니다.\n- `--timeout \u003cms\u003e`: 지정한 시간이 지나면 감싼 명령을 종료합니다.\n- `--always-zero`: 프로세스 exit code는 0으로 반환하되, JSON에는 원래 명령의 exit code를 보존합니다.\n- `--no-stream`: 실행 중 출력 스트리밍 없이 캡처만 합니다.\n- `--notify`: 사용 가능하면 `code-notify` 또는 `cn`을 호출합니다.\n- `--redact`, `--no-redact`: 민감 정보 제거를 켜거나 끕니다.\n- `--tool \u003cname\u003e`: `typescript`, `eslint`, `vitest`, `jest`, `next`, `vite`, `playwright`, `generic` 중 파서 우선순위를 강제합니다.\n\n사용법 오류는 exit code `2`를 반환합니다. 내부 CLI 오류는 exit code `1`을 반환합니다. 감싼 명령의 exit code는 `--always-zero`를 사용하지 않는 한 그대로 보존됩니다.\n\n## 신뢰 모델\n\n런타임 동작은 로컬 전용입니다.\n\n- 텔레메트리 없음\n- 런타임 네트워크 호출 없음\n- 설치 hook 없음\n- 자동 코드 수정 없음\n- AI API 호출 없음\n\n감싼 명령은 `child_process.spawn`과 `shell: false`로 실행합니다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmylee04%2Fagent-log-digest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmylee04%2Fagent-log-digest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmylee04%2Fagent-log-digest/lists"}