{"_id":"@codejing430/easy-agent","_rev":"8-b79d6f89b89651f518933c7c0344b68c","name":"@codejing430/easy-agent","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"@codejing430/easy-agent","version":"1.0.0","keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"author":{"name":"JPLi"},"license":"MIT","_id":"@codejing430/easy-agent@1.0.0","maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"homepage":"https://github.com/jpli/easy-agent#readme","bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"bin":{"easy-agent":"dist/entrypoint/cli.js"},"dist":{"shasum":"650ce938170471ab46f3f2f0b9284c24220aa7b8","tarball":"https://registry.npmjs.org/@codejing430/easy-agent/-/easy-agent-1.0.0.tgz","fileCount":203,"integrity":"sha512-Bxvq1siFjliUboMJVl8VjUMoitDIulAjjCMvlOUAhyBHinaQ3mk6MIV3GuWP4bCMpYt9EffFHz4HYtbfvpCnpw==","signatures":[{"sig":"MEUCIQDiNEzwmmDynebrwY6aKqgHZNs112JzJwnXEy7ESzvHTgIgJPnSG/81hmn/ia3SNLX4g8q/Z/ykldS3Bu7KTKvAVfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621340},"main":"dist/entrypoint/cli.js","type":"module","types":"./dist/entrypoint/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c910c33643acec1ddb8a961164ec00cfffe50601","scripts":{"dev":"tsx src/entrypoint/cli.ts","test":"tsx tests/unit/test-memory-store.ts","build":"tsc","prepare":"npm run build","test:all":"npm run test:unit && npm run test:integration","dev:debug":"tsx src/entrypoint/cli.ts 2>&1","test:unit":"tsx tests/unit/test-memory-store.ts && tsx tests/unit/test-permission-system.ts && tsx tests/unit/test-query-engine.ts && tsx tests/unit/test-transcript-store.ts","prepublishOnly":"npm run build","test:integration":"tsx tests/integration/test-memory-conversation.ts && tsx tests/integration/test-permission-integration.ts && tsx tests/integration/test-simple-integration.ts"},"_npmUser":{"name":"codejing","email":"wangjing343206866@gmail.com"},"repository":{"url":"git+https://github.com/jpli/easy-agent.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ink":"^6.8.0","react":"^19.2.5","dotenv":"^17.4.2","openai":"^6.34.0","js-yaml":"^4.1.1","@anthropic-ai/sdk":"^0.91.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/easy-agent_1.0.0_1777537136570_0.5567605912583418","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@codejing430/easy-agent","version":"1.0.1","keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"author":{"name":"JPLi"},"license":"MIT","_id":"@codejing430/easy-agent@1.0.1","maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"homepage":"https://github.com/jpli/easy-agent#readme","bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"bin":{"easy-agent":"dist/entrypoint/cli.js"},"dist":{"shasum":"ba259c6ac3ea4798cb1db95a11070b33fa1c357f","tarball":"https://registry.npmjs.org/@codejing430/easy-agent/-/easy-agent-1.0.1.tgz","fileCount":207,"integrity":"sha512-JoRqUJKKbD8ee5418Q3RnNLT60nRXO+afgjJboLohFzSP5HtqjuRYinE5Ae1Af0AmBztzT8uM9CHRCHNfZiR+w==","signatures":[{"sig":"MEUCIGyJI01g2kk6jUWUdGPCJ92j+kKV4wDulLEHlMKNUA+iAiEAigev50mou/aI1GN3SYNtVO6VAbipaqz6MWiSjpPzEVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":624460},"main":"dist/entrypoint/cli.js","type":"module","types":"./dist/entrypoint/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5d592313612b4373f095ce95a05830be16ed38c4","scripts":{"dev":"tsx src/entrypoint/cli.ts","test":"tsx tests/unit/test-memory-store.ts","build":"tsc","prepare":"npm run build","test:all":"npm run test:unit && npm run test:integration","dev:debug":"tsx src/entrypoint/cli.ts 2>&1","test:unit":"tsx tests/unit/test-memory-store.ts && tsx tests/unit/test-permission-system.ts && tsx tests/unit/test-query-engine.ts && tsx tests/unit/test-transcript-store.ts","prepublishOnly":"npm run build","test:integration":"tsx tests/integration/test-memory-conversation.ts && tsx tests/integration/test-permission-integration.ts && tsx tests/integration/test-simple-integration.ts"},"_npmUser":{"name":"codejing","email":"wangjing343206866@gmail.com"},"repository":{"url":"git+https://github.com/jpli/easy-agent.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ink":"^6.8.0","react":"^19.2.5","dotenv":"^17.4.2","openai":"^6.34.0","js-yaml":"^4.1.1","@anthropic-ai/sdk":"^0.91.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/easy-agent_1.0.1_1777540122748_0.15432907348754243","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@codejing430/easy-agent","version":"1.0.2","keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"author":{"name":"JPLi"},"license":"MIT","_id":"@codejing430/easy-agent@1.0.2","maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"homepage":"https://github.com/jpli/easy-agent#readme","bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"bin":{"easy-agent":"dist/entrypoint/cli.js"},"dist":{"shasum":"ee9445244b686701db602fad6eb166d484ed56a9","tarball":"https://registry.npmjs.org/@codejing430/easy-agent/-/easy-agent-1.0.2.tgz","fileCount":207,"integrity":"sha512-dhxPwkq0aNEnrM32at8sC8K9xvEWy+oNJlQetZzHoxXbPfisBUeQGZLQJaMPRCwz/7zC2VOfPwtS1zqtnWOWdw==","signatures":[{"sig":"MEUCIQDnNnfvX5DRMb95bDPTCOGPA9gbjGM/GjC2jM/4NH/aTAIgA//UC5LhPiY5mntHTqsK70IHYYtuwxG/RtZ8M4/kiAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621133},"main":"dist/entrypoint/cli.js","type":"module","types":"./dist/entrypoint/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ede0a50df26dcbce9ae6d834c61a13c903bca2f3","scripts":{"dev":"tsx src/entrypoint/cli.ts","test":"tsx tests/unit/test-memory-store.ts","build":"tsc","prepare":"npm run build","test:all":"npm run test:unit && npm run test:integration","dev:debug":"tsx src/entrypoint/cli.ts 2>&1","test:unit":"tsx tests/unit/test-memory-store.ts && tsx tests/unit/test-permission-system.ts && tsx tests/unit/test-query-engine.ts && tsx tests/unit/test-transcript-store.ts","prepublishOnly":"npm run build","test:integration":"tsx tests/integration/test-memory-conversation.ts && tsx tests/integration/test-permission-integration.ts && tsx tests/integration/test-simple-integration.ts"},"_npmUser":{"name":"codejing","email":"wangjing343206866@gmail.com"},"repository":{"url":"git+https://github.com/jpli/easy-agent.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ink":"^6.8.0","react":"^19.2.5","dotenv":"^17.4.2","openai":"^6.34.0","js-yaml":"^4.1.1","@anthropic-ai/sdk":"^0.91.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/easy-agent_1.0.2_1777541011234_0.7821670773777765","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@codejing430/easy-agent","version":"1.0.3","keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"author":{"name":"JPLi"},"license":"MIT","_id":"@codejing430/easy-agent@1.0.3","maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"homepage":"https://github.com/jpli/easy-agent#readme","bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"bin":{"easy-agent":"dist/entrypoint/cli.js"},"dist":{"shasum":"bd5b8d83c6d2b2d945dca8767bcd74d57d97c981","tarball":"https://registry.npmjs.org/@codejing430/easy-agent/-/easy-agent-1.0.3.tgz","fileCount":207,"integrity":"sha512-kQ87EKaX7kocKpwg03FtItP3zR1jbIpQ8C1cLh2MGkZTB197qkinVNSw1RftPFFxa0mbPMN3uSianKKvzomU7A==","signatures":[{"sig":"MEUCIQDiVAWr+zgZYkR7bwPlMvRqiKnaplmg3TcnmlN7L4sHsAIgT1sJKtSwCpHZElzW9Ni/IRU1aVEYgXbhQMNuavYart8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":619043},"main":"dist/entrypoint/cli.js","type":"module","types":"./dist/entrypoint/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ede0a50df26dcbce9ae6d834c61a13c903bca2f3","scripts":{"dev":"tsx src/entrypoint/cli.ts","test":"tsx tests/unit/test-memory-store.ts","build":"tsc","prepare":"npm run build","test:all":"npm run test:unit && npm run test:integration","dev:debug":"tsx src/entrypoint/cli.ts 2>&1","test:unit":"tsx tests/unit/test-memory-store.ts && tsx tests/unit/test-permission-system.ts && tsx tests/unit/test-query-engine.ts && tsx tests/unit/test-transcript-store.ts","prepublishOnly":"npm run build","test:integration":"tsx tests/integration/test-memory-conversation.ts && tsx tests/integration/test-permission-integration.ts && tsx tests/integration/test-simple-integration.ts"},"_npmUser":{"name":"codejing","email":"wangjing343206866@gmail.com"},"repository":{"url":"git+https://github.com/jpli/easy-agent.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ink":"^6.8.0","react":"^19.2.5","dotenv":"^17.4.2","openai":"^6.34.0","js-yaml":"^4.1.1","@anthropic-ai/sdk":"^0.91.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/easy-agent_1.0.3_1777541949116_0.5174642255164594","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@codejing430/easy-agent","version":"1.1.0","keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"author":{"name":"JPLi"},"license":"MIT","_id":"@codejing430/easy-agent@1.1.0","maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"homepage":"https://github.com/jpli/easy-agent#readme","bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"bin":{"easy-agent":"dist/entrypoint/cli.js"},"dist":{"shasum":"a3ff56b4acd481c063644ab92605631cffc4f009","tarball":"https://registry.npmjs.org/@codejing430/easy-agent/-/easy-agent-1.1.0.tgz","fileCount":415,"integrity":"sha512-2Z6sP2i5vXBjBODRofMNr1LX/anuodwzQXUl2AwT0sh0NmSI7ZkbYKYht14i8tsswJ1rUpW6FGwiq/X2zsW41A==","signatures":[{"sig":"MEUCIQDAUaPIOXfX7FsV4+pVmgUOGZLjy3DjfuWaVaar6tPvEAIgWbLJP71nBaliVQRkIwx7Yv23oOOB0n5l5Cj3VQ9MidI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1105531},"main":"dist/entrypoint/cli.js","type":"module","types":"./dist/entrypoint/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f6412a9bbe17b07aeec5b852c31cbfd098950c5c","scripts":{"dev":"tsx src/entrypoint/cli.ts","test":"tsx tests/unit/test-memory-store.ts","build":"tsc","prepare":"npm run build","test:all":"npm run test:unit && npm run test:integration && npm run test:vitest","dev:debug":"tsx src/entrypoint/cli.ts 2>&1","test:unit":"tsx tests/unit/test-memory-store.ts && tsx tests/unit/test-permission-system.ts && tsx tests/unit/test-query-engine.ts && tsx tests/unit/test-transcript-store.ts && tsx tests/unit/test-parse-todos.ts && tsx tests/unit/test-todo-store.ts && tsx tests/unit/test-todo-write-tool.ts && tsx tests/unit/test-task-store.ts && tsx tests/unit/test-sandbox.ts","test:vitest":"vitest run","prepublishOnly":"npm run build","test:integration":"tsx tests/integration/test-memory-conversation.ts && tsx tests/integration/test-permission-integration.ts && tsx tests/integration/test-simple-integration.ts && tsx tests/integration/test-agent-loop-integration.ts && tsx tests/integration/test-permission-mode-integration.ts && tsx tests/integration/test-session-context-integration.ts && tsx tests/integration/test-todo-plan-task-integration.ts","test:vitest:watch":"vitest"},"_npmUser":{"name":"codejing","email":"wangjing343206866@gmail.com"},"repository":{"url":"git+https://github.com/jpli/easy-agent.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ink":"^6.8.0","react":"^19.2.5","dotenv":"^17.4.2","ignore":"^7.0.5","openai":"^6.34.0","js-yaml":"^4.1.1","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/js-yaml":"^4.0.9","@types/proper-lockfile":"^4.1.4"},"_npmOperationalInternal":{"tmp":"tmp/easy-agent_1.1.0_1778233189858_0.736835976301105","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@codejing430/easy-agent","version":"1.2.0","keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"author":{"name":"JPLi"},"license":"MIT","_id":"@codejing430/easy-agent@1.2.0","maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"homepage":"https://github.com/jpli/easy-agent#readme","bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"bin":{"easy-agent":"dist/entrypoint/cli.js"},"dist":{"shasum":"f78cd35957744c207a45c717e7a275dc12595470","tarball":"https://registry.npmjs.org/@codejing430/easy-agent/-/easy-agent-1.2.0.tgz","fileCount":415,"integrity":"sha512-IKJiv3+ZqL+o/cT1NEcEetp4/a9iShjUCrb1G8tSumHRDpOsgx/w/T0XvGLQzHWpdleesLDOI9WOGevzgILy7Q==","signatures":[{"sig":"MEQCIDdyC+YTu/z+v1cavvk0PmPb7xHt0mAxbPhlphm0hI0sAiAb71nvnRKpQWrA9pRtbMuASticYI2DvbHkY1n7uZg66g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1105531},"main":"dist/entrypoint/cli.js","type":"module","types":"./dist/entrypoint/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f6412a9bbe17b07aeec5b852c31cbfd098950c5c","scripts":{"dev":"tsx src/entrypoint/cli.ts","test":"tsx tests/unit/test-memory-store.ts","build":"tsc","prepare":"npm run build","test:all":"npm run test:unit && npm run test:integration && npm run test:vitest","dev:debug":"tsx src/entrypoint/cli.ts 2>&1","test:unit":"tsx tests/unit/test-memory-store.ts && tsx tests/unit/test-permission-system.ts && tsx tests/unit/test-query-engine.ts && tsx tests/unit/test-transcript-store.ts && tsx tests/unit/test-parse-todos.ts && tsx tests/unit/test-todo-store.ts && tsx tests/unit/test-todo-write-tool.ts && tsx tests/unit/test-task-store.ts && tsx tests/unit/test-sandbox.ts","test:vitest":"vitest run","prepublishOnly":"npm run build","test:integration":"tsx tests/integration/test-memory-conversation.ts && tsx tests/integration/test-permission-integration.ts && tsx tests/integration/test-simple-integration.ts && tsx tests/integration/test-agent-loop-integration.ts && tsx tests/integration/test-permission-mode-integration.ts && tsx tests/integration/test-session-context-integration.ts && tsx tests/integration/test-todo-plan-task-integration.ts","test:vitest:watch":"vitest"},"_npmUser":{"name":"codejing","email":"wangjing343206866@gmail.com"},"repository":{"url":"git+https://github.com/jpli/easy-agent.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ink":"^6.8.0","react":"^19.2.5","dotenv":"^17.4.2","ignore":"^7.0.5","openai":"^6.34.0","js-yaml":"^4.1.1","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/js-yaml":"^4.0.9","@types/proper-lockfile":"^4.1.4"},"_npmOperationalInternal":{"tmp":"tmp/easy-agent_1.2.0_1778233228380_0.07654570513594638","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@codejing430/easy-agent","version":"1.3.0","keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"author":{"name":"JPLi"},"license":"MIT","_id":"@codejing430/easy-agent@1.3.0","maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"homepage":"https://github.com/jpli/easy-agent#readme","bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"bin":{"easy-agent":"dist/entrypoint/cli.js"},"dist":{"shasum":"bf283596515506fd5e4d8ada79e0f956303425fc","tarball":"https://registry.npmjs.org/@codejing430/easy-agent/-/easy-agent-1.3.0.tgz","fileCount":415,"integrity":"sha512-8K44NP1NZyXdv869ggfQZz21P8+334WGu1KLA6KkzRVVvf+U8KLuoOLqAFNHdjLcpba11t/8ul8Zid98RmrP7g==","signatures":[{"sig":"MEYCIQCa1y+rGtJ1tJE2uSjdHuF9RctBChxC5RCnBznCXi76EAIhAJfBuaPGe3JAY942atpb+8yUrmSmBkRcjqkxXTg6Ynke","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1105531},"main":"dist/entrypoint/cli.js","type":"module","types":"./dist/entrypoint/cli.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f6412a9bbe17b07aeec5b852c31cbfd098950c5c","scripts":{"dev":"tsx src/entrypoint/cli.ts","test":"tsx tests/unit/test-memory-store.ts","build":"tsc","prepare":"npm run build","test:all":"npm run test:unit && npm run test:integration && npm run test:vitest","dev:debug":"tsx src/entrypoint/cli.ts 2>&1","test:unit":"tsx tests/unit/test-memory-store.ts && tsx tests/unit/test-permission-system.ts && tsx tests/unit/test-query-engine.ts && tsx tests/unit/test-transcript-store.ts && tsx tests/unit/test-parse-todos.ts && tsx tests/unit/test-todo-store.ts && tsx tests/unit/test-todo-write-tool.ts && tsx tests/unit/test-task-store.ts && tsx tests/unit/test-sandbox.ts","test:vitest":"vitest run","prepublishOnly":"npm run build","test:integration":"tsx tests/integration/test-memory-conversation.ts && tsx tests/integration/test-permission-integration.ts && tsx tests/integration/test-simple-integration.ts && tsx tests/integration/test-agent-loop-integration.ts && tsx tests/integration/test-permission-mode-integration.ts && tsx tests/integration/test-session-context-integration.ts && tsx tests/integration/test-todo-plan-task-integration.ts","test:vitest:watch":"vitest"},"_npmUser":{"name":"codejing","email":"wangjing343206866@gmail.com"},"repository":{"url":"git+https://github.com/jpli/easy-agent.git","type":"git"},"_npmVersion":"10.8.2","description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ink":"^6.8.0","react":"^19.2.5","dotenv":"^17.4.2","ignore":"^7.0.5","openai":"^6.34.0","js-yaml":"^4.1.1","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/js-yaml":"^4.0.9","@types/proper-lockfile":"^4.1.4"},"_npmOperationalInternal":{"tmp":"tmp/easy-agent_1.3.0_1778233249240_0.4712286309830078","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@codejing430/easy-agent","version":"1.5.0","type":"module","main":"dist/entrypoint/cli.js","bin":{"easy-agent":"dist/entrypoint/cli.js"},"scripts":{"build":"tsc","dev":"tsx src/entrypoint/cli.ts","dev:debug":"tsx src/entrypoint/cli.ts 2>&1","prepare":"npm run build","prepublishOnly":"npm run build","test":"tsx tests/unit/test-memory-store.ts","test:unit":"tsx tests/unit/test-memory-store.ts && tsx tests/unit/test-permission-system.ts && tsx tests/unit/test-query-engine.ts && tsx tests/unit/test-transcript-store.ts && tsx tests/unit/test-parse-todos.ts && tsx tests/unit/test-todo-store.ts && tsx tests/unit/test-todo-write-tool.ts && tsx tests/unit/test-task-store.ts && tsx tests/unit/test-sandbox.ts","test:integration":"tsx tests/integration/test-memory-conversation.ts && tsx tests/integration/test-permission-integration.ts && tsx tests/integration/test-simple-integration.ts && tsx tests/integration/test-agent-loop-integration.ts && tsx tests/integration/test-permission-mode-integration.ts && tsx tests/integration/test-session-context-integration.ts && tsx tests/integration/test-todo-plan-task-integration.ts","test:vitest":"vitest run","test:vitest:watch":"vitest","test:all":"npm run test:unit && npm run test:integration && npm run test:vitest"},"keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"author":{"name":"JPLi"},"license":"MIT","description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","repository":{"type":"git","url":"git+https://github.com/jpli/easy-agent.git"},"bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"homepage":"https://github.com/jpli/easy-agent#readme","engines":{"node":">=18.0.0"},"devDependencies":{"@types/js-yaml":"^4.0.9","@types/node":"^25.6.0","@types/proper-lockfile":"^4.1.4","@types/react":"^19.2.14","tsx":"^4.21.0","typescript":"^6.0.3","vitest":"^4.1.5"},"dependencies":{"@anthropic-ai/sdk":"^0.91.0","@modelcontextprotocol/sdk":"^1.29.0","dotenv":"^17.4.2","ignore":"^7.0.5","ink":"^6.8.0","js-yaml":"^4.1.1","openai":"^6.34.0","proper-lockfile":"^4.1.2","react":"^19.2.5"},"_id":"@codejing430/easy-agent@1.5.0","gitHead":"d92478a7d43e77a2300ccd8786f732fb98e8f71e","types":"./dist/entrypoint/cli.d.ts","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-PGAb2TE0SmB+bdWjUgqf0Sb0YW7Ntd34ry8io47fEVhmPtWc1l+cGAMUauSktwg4DcBbefP6cYJMyBaHHX4gLA==","shasum":"56699345dcd9f81884b99f207887388c34471b60","tarball":"https://registry.npmjs.org/@codejing430/easy-agent/-/easy-agent-1.5.0.tgz","fileCount":431,"unpackedSize":1145457,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEiAc8JJR4bpSm04Lk0B1Vg1dvhc1jOrLUtjmbIHvJFkAiA4Im+Lvhb7CN5FOGxsNEyzJxw+7d8vgBAvW8Dioq5lOw=="}]},"_npmUser":{"name":"codejing","email":"wangjing343206866@gmail.com"},"directories":{},"maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/easy-agent_1.5.0_1778235424338_0.29774659122381797"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T08:18:56.456Z","modified":"2026-05-08T10:17:05.050Z","1.0.0":"2026-04-30T08:18:56.754Z","1.0.1":"2026-04-30T09:08:42.896Z","1.0.2":"2026-04-30T09:23:31.449Z","1.0.3":"2026-04-30T09:39:09.343Z","1.1.0":"2026-05-08T09:39:50.013Z","1.2.0":"2026-05-08T09:40:28.565Z","1.3.0":"2026-05-08T09:40:49.442Z","1.5.0":"2026-05-08T10:17:04.567Z"},"bugs":{"url":"https://github.com/jpli/easy-agent/issues"},"author":{"name":"JPLi"},"license":"MIT","homepage":"https://github.com/jpli/easy-agent#readme","keywords":["ai-agent","cli","llm","tools","permissions","context-management","coding-assistant","terminal","ink","react"],"repository":{"type":"git","url":"git+https://github.com/jpli/easy-agent.git"},"description":"A powerful terminal AI Agent framework with multi-model support, tool calling, permissions, and context compression","maintainers":[{"name":"codejing","email":"wangjing343206866@gmail.com"}],"readme":"# Easy Agent\n\n> 一个强大的终端 AI Agent 框架，支持多模型切换、工具调用、权限管理和上下文压缩\n\n## 特性\n\n- **首次引导配置**：第一次启动自动引导选择大模型提供商和 API Key\n- **多模型支持**：DeepSeek、智谱 GLM、OpenAI、Moonshot、通义千问等无缝切换\n- **运行时模型切换**：在会话中随时切换模型，无需重启\n- **完整工具集**：文件读写、Bash 执行、Grep 搜索、Glob 文件查找、内存管理等\n- **权限管理系统**：精细的权限控制，支持危险操作确认、环境变量保护\n- **上下文压缩**：智能 Token 预算管理，自动压缩长对话，支持手动压缩\n- **记忆系统**：持久化会话记忆，支持忽略规则管理\n- **终端 UI**：基于 React + Ink 的现代化终端界面\n\n## 安装\n\n### 全局安装（推荐）\n\n```bash\nnpm install -g @codejing430/easy-agent\n```\n\n### 本地项目安装\n\n```bash\nnpm install @codejing430/easy-agent\n```\n\n### 使用 npx（免安装）\n\n```bash\nnpx @codejing430/easy-agent\n```\n\n## 快速开始\n\n### 1. 首次启动\n\n首次运行 `easy-agent` 会自动触发模型配置向导：\n\n```bash\neasy-agent\n```\n\n向导将引导你：\n1. 选择大模型提供商（DeepSeek / 智谱 / OpenAI / Moonshot / 通义千问 / 自定义）\n2. 输入 API Key\n3. 选择或输入模型名称\n4. 确认并保存配置\n\n配置完成后即可开始对话。\n\n### 2. 日常使用\n\n```bash\n# 启动交互式 Agent\neasy-agent\n\n# 指定初始消息\neasy-agent \"帮我分析这个项目\"\n\n# 指定模型\neasy-agent --model deepseek-chat\n\n# 重新配置模型\neasy-agent --setup\n\n# 查看帮助\neasy-agent --help\n\n# 查看版本\neasy-agent --version\n\n# 调试系统提示词\neasy-agent --dump-system-prompt\n```\n\n### 3. 会话中切换模型\n\n在对话过程中，直接用自然语言告诉 Agent 即可：\n\n```\n你: 帮我切换到 deepseek-chat\n你: 我想用 GPT-4o\n你: 切换模型到 glm-4-flash\n```\n\nAgent 会自动调用 `switch_model` 工具完成切换，新模型立即生效。\n\n## 配置\n\n### 配置文件\n\n模型配置保存在 `~/.easy-agent/model-config.json`：\n\n```json\n{\n  \"model\": \"deepseek-chat\",\n  \"baseURL\": \"https://api.deepseek.com\",\n  \"apiKey\": \"sk-xxx\",\n  \"createdAt\": \"2026-04-30T00:00:00.000Z\",\n  \"updatedAt\": \"2026-04-30T00:00:00.000Z\"\n}\n```\n\n### 环境变量（可选）\n\n也可以通过 `.env` 文件或环境变量设置，优先级低于配置文件：\n\n```env\nOPENAI_API_KEY=sk-...\nOPENAI_BASE_URL=https://api.openai.com/v1\nOPENAI_MODEL=gpt-4o\n```\n\n### 权限配置\n\n权限配置保存在 `.agent/settings.json`：\n\n```json\n{\n  \"mode\": \"default\",\n  \"allow\": [\"Read\", \"Bash(ls)\", \"Bash(cat *)\"],\n  \"deny\": [\"Bash(rm *)\", \"Bash(dd *)\"]\n}\n```\n\n## 支持的模型提供商\n\n| 提供商 | Base URL | 可用模型 |\n|--------|----------|----------|\n| DeepSeek | https://api.deepseek.com | deepseek-chat, deepseek-reasoner |\n| 智谱 (GLM) | https://open.bigmodel.cn/api/paas/v4 | glm-4-flash, glm-4-plus, glm-4-long |\n| OpenAI | https://api.openai.com/v1 | gpt-4o, gpt-4o-mini, gpt-4-turbo |\n| Moonshot | https://api.moonshot.cn/v1 | moonshot-v1-8k, moonshot-v1-32k, moonshot-v1-128k |\n| 通义千问 | https://dashscope.aliyuncs.com/compatible-mode/v1 | qwen-turbo, qwen-plus, qwen-max |\n| 自定义 | 自行输入 | 自行输入 |\n\n> 所有提供商均使用 OpenAI 兼容 API 接口。\n\n## 功能特性\n\n### 工具系统\n\nAgent 支持以下工具：\n\n| 工具 | 功能 | 权限级别 |\n|------|------|----------|\n| `file_reader` | 读取文件内容 | 读取 |\n| `file_writer` | 写入文件 | 写入（需确认） |\n| `file_editor` | 编辑文件（唯一匹配替换） | 写入（需确认） |\n| `bash` | 执行 Bash 命令 | 命令执行（需确认） |\n| `grep` | 搜索文件内容 | 读取 |\n| `glob` | 查找文件 | 读取 |\n| `switch_model` | 切换大模型 | 系统 |\n| `memory_*` | 管理会话记忆 | 系统 |\n\n### 权限管理\n\n- **危险操作确认**：写入文件、执行命令等操作需要用户确认\n- **环境变量保护**：敏感环境变量自动隐藏\n- **工作目录限制**：只能在当前项目目录内操作文件\n- **命令白名单**：限制可执行的 Bash 命令\n- **三种模式**：default（默认）、plan（计划模式，只读）、auto（自动模式）\n\n### 上下文压缩\n\n- **自动压缩**：当 Token 使用超过阈值时自动压缩历史对话\n- **手动压缩**：使用 `/compact` 命令手动触发压缩\n- **智能摘要**：保留关键对话信息，丢弃冗余内容\n- **Token 预算**：多级预警机制，防止 API 超限\n\n### 记忆系统\n\n- **持久化存储**：跨会话保存对话记忆\n- **忽略规则**：可配置忽略特定文件/目录的修改\n- **记忆查询**：通过 `Memory` 工具管理记忆\n\n## 开发\n\n### 项目结构\n\n```\nsrc/\n├── core/           # 核心逻辑（Agent Loop、Query Engine）\n├── tools/          # 工具实现\n├── session/        # 会话管理（压缩、Token 预算）\n├── permissions/    # 权限系统\n├── ui/             # 终端 UI 组件\n├── services/       # API 服务（客户端、适配器、模型配置）\n└── entrypoint/     # CLI 入口\n```\n\n### 构建\n\n```bash\n# 安装依赖\nnpm install\n\n# 开发模式\nnpm run dev\n\n# 构建\nnpm run build\n\n# 测试\nnpm test\n```\n\n## 许可证\n\nMIT\n\n## 贡献\n\n欢迎提交 Issue 和 Pull Request。\n\n## 支持\n\n如果在使用中遇到问题，请：\n\n1. 查看 `easy-agent --help` 获取命令行帮助\n2. 运行 `easy-agent --setup` 重新配置模型\n3. 使用 `easy-agent --dump-system-prompt` 调试系统提示词\n4. 在 GitHub 仓库中提交 Issue\n","readmeFilename":"README.md"}