{"_id":"vibe-learning","_rev":"29-0117b6398f9ab5a79ccbed388c69c939","name":"vibe-learning","dist-tags":{"latest":"1.0.0"},"versions":{"0.3.0":{"name":"vibe-learning","version":"0.3.0","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.0","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"2203b07523858285ad2feb5b41eb377520f2f58e","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.0.tgz","fileCount":185,"integrity":"sha512-PzjBC3SPOql+fShWF98MuN0TKCILTZURQx+3ug5lH6X/8LOvdaoDy71VWk4idbpywM5PXuhMfpcuVQ8xCSym2A==","signatures":[{"sig":"MEUCIQCHUVELjeO5zxjJ/GEPkMr/s5Tqyu0rsKPKkXNFlgBXAgIgYVHnbR2o1MBJarRR9xhNaekyiAGvhUglh6JZyX04C4U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":919301},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2d952fbb144484e6033717e4cdea6f1969e8f424","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.0_1767835108723_0.4910385625510745","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"vibe-learning","version":"0.3.1","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.1","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"e5efecdd7087ad6ff79378ae31e511cdf57327c5","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.1.tgz","fileCount":185,"integrity":"sha512-FkcWLSGAHyt8jjLWYPCE2mQaPDjo1Yv0qvXnfR0InG+75XgbMujOlcOtvQTzfQnBZhTrtIEta+1NozLg+rwqUw==","signatures":[{"sig":"MEYCIQC+lp2fQVZ0pvVoxXGAZeSUNe2YQRD+nBWx/7BN8JvW3AIhAL5gZ4Cn9UVkfhxsAAgjOBzthaaIAIekkG+5yk09t6m0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":919460},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2d952fbb144484e6033717e4cdea6f1969e8f424","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.1_1767835218145_0.7360543953887566","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"vibe-learning","version":"0.3.2","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.2","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"3e47d81ec594336bf60801edeccbe27948651bf0","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.2.tgz","fileCount":237,"integrity":"sha512-09t2t14mb4ExPrAFI+uMhrbgEBBRu4Ey5WJhF3tJJqax+dFveKtH6sHMDkx/s1CdMN0qG9P0lzeSd1Bipvn1Rg==","signatures":[{"sig":"MEUCIBWNa7XjwPSQ010qkjnlGEKjQYOfai6Oagrl7UB/Y577AiEA9KXASZS02T8okp0KZXABVKRb7BLR0jA/L4zglH89YM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1951516},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d767e5b57293b10a07a822ae013a4b4e3ffc1a01","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.2_1767837478410_0.2962741112838103","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"vibe-learning","version":"0.3.3","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.3","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"f860a059639d00f13d91f2aefebeef0b8be108ee","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.3.tgz","fileCount":237,"integrity":"sha512-zMYIy8ZqHiLC3PAO9mIw4YieENat+1aEfXFcrDbf3PJG+OnpDp38WXua+O9Ke/RzEwdEEUdxLrDq6iNH/BpL6g==","signatures":[{"sig":"MEUCICcz32pyDwQeOJVLG/Q5+lfekzKOfRWamg6IS8NN7Nl7AiEAugGgmVBjvb61H8nbw8MBoqaIUw+00KoIBTNdNJPjV0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1952633},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7214ba96fe75cd44de9265f2fc111bfe760f5348","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.3_1767839001501_0.16373514119520927","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"vibe-learning","version":"0.3.4","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.4","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"0afdb670a552c11a29598fef2bc3c1f35023ec74","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.4.tgz","fileCount":237,"integrity":"sha512-McVTqU0QdWKTiCZ2UkI3iE59vGMvd7rZ3+rFhNi5ycf1R1lqc/8ZUzon2M1MEiE3Y9CX4tisLOvtqLidXE4FVw==","signatures":[{"sig":"MEYCIQCH5OsURf6qq3A19xkIsTqKSssrsFPxcEcTestbvdMS9wIhAIgMIp6ob8YnUHxTwZediZ3VCN0x46H74ofWru2gAZHV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1956466},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7214ba96fe75cd44de9265f2fc111bfe760f5348","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.4_1767839643976_0.7427254651155528","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"vibe-learning","version":"0.3.5","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.5","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"e0f1f9552b9f59f18297ec3964ef519890ce91b3","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.5.tgz","fileCount":237,"integrity":"sha512-cXBSCDMeI72BBhyVCTx04v7+RSYk74pQm6DYsgSynPCi5lDhCVWDaLpktGY468jefZ+uzcMraN8gu1qaT8k4ag==","signatures":[{"sig":"MEQCIAuILwes9O7BIEyDumMMLS4WcAF984hvTSTUaLqVs4hYAiBd0E4zsgexT7S09lXPEhY/SQXC7wlW6vZG6+RijgxmUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1958486},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7214ba96fe75cd44de9265f2fc111bfe760f5348","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.5_1767839691482_0.8909536117338066","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"vibe-learning","version":"0.3.6","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.6","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"290b3c10d164f8a80db9aa835c8f7a255b001cb1","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.6.tgz","fileCount":237,"integrity":"sha512-L0PIhbgd4EpOo9C1yLecTpRHUome+Rfb1Mbaa7AvVQOSyxX93y6R3IEAY1yHDL8CVfAfonAdRNS2SzNRBupRBg==","signatures":[{"sig":"MEUCIDKjxkSymqYGQ7P4XGVj8ngW7ZTTWtzXCc/ZE5UPwO/OAiEA1e9FDnkXs8dSgd9M/SWV9oLS2wq3Ct3trRi7q8VYxrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1965423},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7214ba96fe75cd44de9265f2fc111bfe760f5348","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.6_1767839929053_0.6092600268133679","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"vibe-learning","version":"0.3.7","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.7","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"af5145d253def1e601645778a829dcd4022e75e3","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.7.tgz","fileCount":67,"integrity":"sha512-oEYw6ezldCbpPMLOTTiU9Iujq3ovD9eisgI5jFhKNTMB8hh/l4aQt9pYDnF2h9/46eR7ulvZdvh8Ii8TqOxcZQ==","signatures":[{"sig":"MEQCIFPl2NaYYK1nh9C+xdGdgjv3v2Hr7HSrxA6czkOXVdqrAiB9+gBKBoyryTAhG0SdzswRO7VLN841zgM62fyAW6tfow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292182},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e1df58ece6e7358a3f0c1e8b075b17be014a3b4b","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.7_1767841381830_0.9613536191437837","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"vibe-learning","version":"0.3.8","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.8","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"759511fa1a00e12d4c53cfaad9c55416724abe9b","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.8.tgz","fileCount":68,"integrity":"sha512-RLayeP3eJTg+2COvxR2tp5Wyux8PYEX9SV3Q2204PZ6uDbKg8gCxEZr298YQQbRMY0WHNAw8wSHoxXjNmJcZkA==","signatures":[{"sig":"MEUCIDzeTjgVVL4AuLE/T6TVLwCkYXHtGvJzTmgdIGOLXyFOAiEAozBywIRB7Cp2vcDyebzs9Z7SsKZKle3pz9ivD2iDKw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274356},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e1df58ece6e7358a3f0c1e8b075b17be014a3b4b","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.8_1767842347909_0.3091917738827128","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"vibe-learning","version":"0.3.9","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.9","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"ff00b5b4270facc4399dcce33887d1e4e9d38569","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.9.tgz","fileCount":68,"integrity":"sha512-fd5OcItJif7C9IvO2wJvu/XLvjB7r5LgcYXkJKP5uni67H/7Biyah+WzKlbufYLzUEeps0o5vDJNdHKmBoVIhQ==","signatures":[{"sig":"MEUCIQD51ps7Tn4NEcoxOin90dH8pxGz+eLrDzDKDQDfLJ/HQwIgLNICIWZp6py47ak4Td6x1nliCb/NcjdJiX7L0+2aGZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274109},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4e804cb38e459ecc6a9688cd7b4b4c248529c40d","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.9_1767847058814_0.9000230873665267","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"vibe-learning","version":"0.3.10","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.10","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"ff8e29dc5a18b00145ec06e50a0e2288dc5109e3","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.10.tgz","fileCount":69,"integrity":"sha512-qlWM6yhIGqCUo+H/2brsvA+7Qm34lVmPpgnc7rSxbRVdu7ucZ8gRNMdj8NZslbDyZzQtsbvGAmOH2TQQ+ofGFw==","signatures":[{"sig":"MEUCIHHCXU+09uz/VeNY7N8SSZniIqyvAjDG5UmaSwD3pUJ/AiEArczicdswweOaDQjwwL98cOMw6zFJnDCD3CRqwedigw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271764},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3edec80e3d8317113299a5603146c533dbf52de5","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.10_1767847390501_0.6511093060851265","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"vibe-learning","version":"0.3.11","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.11","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"7112e42b98f50d86131d64f3a4f72acbb691871c","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.11.tgz","fileCount":69,"integrity":"sha512-rEDk2SFlEDCJOc53IeUX3c69csXpBt92Jd8lfR8H5/bGuNrGp3thYy4Jn2LEeoxcVdanWQxOW6CRvTC6AC8kUA==","signatures":[{"sig":"MEYCIQCF3KHLFh4pEyWCF+k86vhA+RR1qdziBTbtJnVjUuY+JQIhAPyXh5SNbsUYzzLch5QEly+NK/cXE9y7nKxRblB3R4dH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271732},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"fb576119d132b96fb3eaac3c86fa7159ca08ec65","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.11_1767847872976_0.16262045837667238","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"vibe-learning","version":"0.3.12","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.12","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"9b87279b68efdb52ef273a86f36b85ef7ca184dd","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.12.tgz","fileCount":69,"integrity":"sha512-u3QLw/v+eKQvMaqVQexOZPBWHxM+92bDEExm/ogGNG4jeVsI5mfXZX6X7PTX87ZPsK/6wSpCfM4rJHfTXQq6bA==","signatures":[{"sig":"MEQCIAPYKGd+k74Qgu8XZ/ze+/4/klEoysUDXSwM7m2ILmnhAiBko49El8ftJUZCLYzmcTdoIiCac0q7CnKiQt6903Cvmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270920},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8ea7e71fe1f80de8eb0140666ffc1d43be4f9b40","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.12_1767848489757_0.811943153075888","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"vibe-learning","version":"0.3.13","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.13","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"4be34e048f76ae55b33ef529da9d31c5fbd9a6f7","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.13.tgz","fileCount":69,"integrity":"sha512-AUxlETbLYss2vrnoGf3du6+7e0NbOI939jsLLpgvyVx5XmOn184oKkApVkw0O+xTYod1xaVCv1nf53mnn5QxzQ==","signatures":[{"sig":"MEUCIGZktexTeadwGVFgSTwlFG9aXnvcgz9ZfebfRzZtCslIAiEAhv4YTcJF4fWyEVdL8EJWCNe+uuzX+JlknUoJV2CATpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270920},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8ea7e71fe1f80de8eb0140666ffc1d43be4f9b40","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.13_1767848753478_0.7478895023493968","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"vibe-learning","version":"0.3.14","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.14","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"fd187b52fb08345c1e41bf9489674ed40264aaae","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.14.tgz","fileCount":75,"integrity":"sha512-yoxch5Nboy32+aX1+5Hc5mawOTTW4DOXBGC4S437RiMx8nZS6PBTOzyFgC28bAo4rTr/gddeOsJRo4kOdm4cKg==","signatures":[{"sig":"MEUCIQC/LWh0RSTbEjIANcD3ld0ct6WXmcngNsAT+5fj1rJ/iwIgTe74/GmEgtt5rjBei2zT+RChA3iZsbtHLKOh1gahB60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282802},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"05192d0dd7022dad861444f1faeea4e01f23592e","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.14_1767849043458_0.6333222637950078","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"vibe-learning","version":"0.3.15","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.15","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"0d3b4ee5feec9080633de4de4a61bef0b59ebf60","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.15.tgz","fileCount":75,"integrity":"sha512-O+ye/EupDHRr0xCcEkX+shvzfjGw5yhKWA44GZjXI79BJ5/LO0L8HnBiBsBTdTtxPeVXBsAnWpPHW8Pe4xeRTw==","signatures":[{"sig":"MEYCIQDH4LVciPDx30p6PTo4/OYZ1PDI5Fv5t74BwhyiQD/LxAIhAOEgDJY30XQ25Z1DoFQpfZ2VZubNRfjLuT29rYqTaD43","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283632},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"781c484dbecdd34482dcf7959304cc4ffd3e5489","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.15_1767849355634_0.912792139531329","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"vibe-learning","version":"0.3.16","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.16","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"476217b0503fb676d237d8bc51a710211789cb49","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.16.tgz","fileCount":75,"integrity":"sha512-FasIa23oYYNc+XJCxDgYv/lCrPRgB2l9M0ex3MjOpWeE9pSIROO31CfbcGUWB1qBaPmM4iqbMYuEeUTQ3ucy0Q==","signatures":[{"sig":"MEUCIQCvPRm8jynRdPDQLwPTWZIXMJoiBFJsU7zCTIAkJDq1YAIgZVN8XPOvvFmD4BJrFHcKB5Jv60z57p0DmEA5Ib4rvYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283518},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1653d7b18f3e34541397bee584173ef1c7c3ad60","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.16_1767849982105_0.4620737421408596","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"vibe-learning","version":"0.3.17","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.17","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"f0f430ce9f8e7e05e09d2c45668d779f4f296a2b","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.17.tgz","fileCount":75,"integrity":"sha512-ymbl56xzTbkKS57bJDxrcRlZGHLzLiXsx1I4/CWN90SEV0+KL3SpDHLkAn9gn6+WNWEOtn032yUJHFCd5dK6Tg==","signatures":[{"sig":"MEUCIAc3Fpjgg6gT0wBil+CDuzpoe8mRiiX4ZMjyLm0PbUSkAiEA3Ogf92J2K7TutioTmcsujVLPF1TD7zlFXf2KTS0a3IU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288424},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"eb834db1f5cea25038c1b37fd26c34a3aa62dc76","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.17_1767850827337_0.7490876855433213","host":"s3://npm-registry-packages-npm-production"}},"0.3.18":{"name":"vibe-learning","version":"0.3.18","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.18","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"a610d652515adb110bf0cf95bb928ffd4cdb0e2e","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.18.tgz","fileCount":75,"integrity":"sha512-CoEgVOFXJ07wmSX4XsGZJ4B6rtT1BbOufwcSy3VLwB5z8wvl02coGMNV8vS/1ieZnNGH0VgVsq3bdvSjxcK7JA==","signatures":[{"sig":"MEQCIEVvJDmhUy0taNsFmN5bTBGRW91iXbLG76X0i97ipbogAiATHGLNPhRbkZ5SXLJrsnHO8CiOZ1Nv3jDopBfLEn4WyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288490},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1ce25297ea51c8bf9c210178489dd004e1e18774","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.18_1767851067742_0.9252526639580658","host":"s3://npm-registry-packages-npm-production"}},"0.3.19":{"name":"vibe-learning","version":"0.3.19","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.19","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"28e84e611f76371e05e083a2a539473ee782291f","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.19.tgz","fileCount":75,"integrity":"sha512-zIT1Q9Lra80fAEZIChLKGus+Co43aApyk9kMi86HgijbGxLYdSbgPX4nJa0A7PT0mFEg/5i6jIRn+vnFAIMUrQ==","signatures":[{"sig":"MEQCIEFdIQJ59eH2AHCV/5fM5p2J+AETUCYb9utr1YUYjwZmAiAaENxAE8e6ucoqqGEyJBqJJm9nxepnx93fKL+lZ4HD0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288233},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"08d0d2d12740a2970aedbaaeb588cdd6a2223245","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.19_1767851178522_0.1204785424114585","host":"s3://npm-registry-packages-npm-production"}},"0.3.20":{"name":"vibe-learning","version":"0.3.20","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.20","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"694f3d88f57d210b96d494ef92782440cd487a58","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.20.tgz","fileCount":75,"integrity":"sha512-+u5/EoR8A0U/mXPcKAI8T7XYS2uy9CWVgqcUfdjqb95LebVfUZlXgqGYei7KodT5Wde5h8ryDjtyeMY4TvUF9Q==","signatures":[{"sig":"MEYCIQDAlSKlc+whY1DSt7UtpaV/NCBzbklq4ZLGV9QAPqM+cAIhAL7uDZ14VltYsC6zwevvMfNvBE0ilrUnTrvk9x57o+D1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288462},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e6392099728602dd0f54b2b93921678c68508d92","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.20_1767851344054_0.885683238791479","host":"s3://npm-registry-packages-npm-production"}},"0.3.21":{"name":"vibe-learning","version":"0.3.21","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.21","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"179bbce9f2c89e43226fdde4ab32129d6d43778e","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.21.tgz","fileCount":75,"integrity":"sha512-SDljabkz1LwGQbWFjc77Qu4jM/Al6P5yUXm82M9WwtgJQYektgQWRMLrLcPPswMgcq1pBGRMdLrLVFasrChU6A==","signatures":[{"sig":"MEUCIQD+K0M1VotZ5+hSQFvIt7S/EJX4h9zuaikBs1pt+YEz5QIgUvxzoPVMgb+hnkRD47/xtNtasUJR6o9fgyFMrFGi+DA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288964},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5809a4c897f13b58f716ff14793f626a481d304a","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.21_1767851644445_0.23292823260397189","host":"s3://npm-registry-packages-npm-production"}},"0.3.22":{"name":"vibe-learning","version":"0.3.22","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.22","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"baef80e0c629e237c2bd7d0535833ebfeabd4c01","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.22.tgz","fileCount":75,"integrity":"sha512-V45YySrFysEr7F9EvRCAnqO8ypUZt+waGBBd3W1F5cpO/4revER7hsTbRDMMkFkItGs6p/k3dTajnMImxhNjfg==","signatures":[{"sig":"MEUCIQDPWZl4lf1azkZ5XqKmjawYlp/VTKtohlmiawzqTSRUCgIgVATk+ye5gtqtOCrFpbVc4jfmfhZS1KP3ZggF/80CGmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289555},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ad2804aa333c50fca480a2d6eb397bc1ba870616","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.22_1767852131500_0.6201365091770634","host":"s3://npm-registry-packages-npm-production"}},"0.3.23":{"name":"vibe-learning","version":"0.3.23","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.23","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"8c3d002d897537e9e0b372c20f7f610eb7426818","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.23.tgz","fileCount":75,"integrity":"sha512-NejqzrTFUHgAJJzi3hrpONI0fS0qqexlipYjZ2XbyCCa7B5p3wKjTD1d7TmUtzfWtIGloGCDRwna0O0DY4UChw==","signatures":[{"sig":"MEQCICOLvaP3rQv6ln39F8IB8taZXRHULgrgWSSuKYHUXPSgAiBCxflMk1Zlo+pd4VGt5ujuKBysKKAvR3EA7G1LJd3CzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291959},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ad2804aa333c50fca480a2d6eb397bc1ba870616","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.23_1767852221126_0.3694411422450865","host":"s3://npm-registry-packages-npm-production"}},"0.3.24":{"name":"vibe-learning","version":"0.3.24","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.24","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"e4bd08f07524f506572b6e52b6a33f82b3df4ed9","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.24.tgz","fileCount":75,"integrity":"sha512-cCXk89bKHA0JONRxiyZIYKROz4t598Nnmq1RNoQ7fnOgEuhJcISMHHeKLo8FdMWOznOjJfeTp2/w2VqHYL/sAQ==","signatures":[{"sig":"MEYCIQDiX+jqvsEZ1Ym8nMpyeve1FcU0Wz3WMXMasYkojWA/ogIhAL6f6ier27hIXnRUEYwaHFiPfpjQOySyvvxDjXGktEuE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294684},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ad2804aa333c50fca480a2d6eb397bc1ba870616","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.24_1767853488355_0.7959096534347081","host":"s3://npm-registry-packages-npm-production"}},"0.3.26":{"name":"vibe-learning","version":"0.3.26","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.26","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"094d5501ee8eb8f2e9ff1b682eff9fb6ca8c26ef","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.26.tgz","fileCount":76,"integrity":"sha512-M4o8UPQmGD7ykh7rdl2b4NCKed3URHlW4koh6u1iWgqC9caR0sBDY3nX2z8Wy/YErknwMkPl3ZKF1NZgM9/3eg==","signatures":[{"sig":"MEUCIHqVG6lyDSNaI9KtSHUwvY9frg1vg58o1Q9UeLgSSXwzAiEA8rf8XkdMy/vNI7OamC430ppU32GEP09NmoQJNvZAzXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289974},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"57b4122055e77f82c5438419b772be25f241622c","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.26_1767855566615_0.12068515053418793","host":"s3://npm-registry-packages-npm-production"}},"0.3.31":{"name":"vibe-learning","version":"0.3.31","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.31","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"0345062cc0d65710d2eda939e1154a24582b182d","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.31.tgz","fileCount":76,"integrity":"sha512-E3rUEx/mOrL0X7sdq/ys692IqM7IImhQ43cV1rMmsefM6dnIoPHQ02HHiKaDBG0G5AmbETLPVvemTX8PqpaZng==","signatures":[{"sig":"MEYCIQDDBPp1qAzhElNiqEOvDFUUQ4eLNy3X7iiz7b32sa+BAwIhANY71l3QoLtIHVki9RtS+teyYcrmRPzEDmRPeRtKuUtJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293935},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"148ff68217807c09afb931c892eedb0140fd8950","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.31_1767861094112_0.051928279847119674","host":"s3://npm-registry-packages-npm-production"}},"0.3.33":{"name":"vibe-learning","version":"0.3.33","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","_id":"vibe-learning@0.3.33","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"bin":{"vibe-learning":"dist/main.js"},"dist":{"shasum":"b16eccc4306ff087c19317fa4006419755f234b2","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-0.3.33.tgz","fileCount":76,"integrity":"sha512-RtDHEbbudyCszgx3zRiekY4W0CGYAP5ySSKkIi+PkAT0ckh2Un4IGc7KnZeQTxuH5oIadRutum+/uel1YsHlfw==","signatures":[{"sig":"MEUCIDi99yc4LrvWa2kFloY9DzZeFuvN9rZO6sx8V+ExA7h0AiEA6izFV2WT6cxLvnsqdCzI0JqqemhjDflQ87QegbqQUJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294799},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7e0a425c8e2ae492293bef169fc20899043c9181","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","prepare":"npm run build","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"_npmVersion":"11.5.2","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.24.1","better-sqlite3":"^11.7.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^2.1.8","ts-node":"^10.9.2","@eslint/js":"^9.39.2","typescript":"^5.7.3","@types/node":"^22.10.5","typescript-eslint":"^8.52.0","@vitest/coverage-v8":"^2.1.8","@types/better-sqlite3":"^7.6.12","@typescript-eslint/parser":"^8.19.1","@typescript-eslint/eslint-plugin":"^8.19.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe-learning_0.3.33_1767864081470_0.5968180566099126","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"vibe-learning","version":"1.0.0","description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","main":"dist/index.js","types":"dist/index.d.ts","bin":{"vibe-learning":"dist/main.js"},"scripts":{"build":"tsc","dev":"ts-node src/index.ts","start":"node dist/index.js","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","typecheck":"tsc --noEmit","clean":"rm -rf dist","prepare":"npm run build"},"keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"author":"","license":"MIT","engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","better-sqlite3":"^11.7.0","zod":"^3.24.1"},"devDependencies":{"@eslint/js":"^9.39.2","@types/better-sqlite3":"^7.6.12","@types/node":"^22.10.5","@typescript-eslint/eslint-plugin":"^8.19.1","@typescript-eslint/parser":"^8.19.1","@vitest/coverage-v8":"^2.1.8","eslint":"^9.17.0","ts-node":"^10.9.2","typescript":"^5.7.3","typescript-eslint":"^8.52.0","vitest":"^2.1.8"},"_id":"vibe-learning@1.0.0","gitHead":"4636c2225ea0bbe32c21c2456b651b3f23645e4f","_nodeVersion":"24.4.1","_npmVersion":"11.5.2","dist":{"integrity":"sha512-c4T/tfI4B6LPB16ETcZ9G0bnkynmkMX2az1V3+1Koq31+v4A+7QMhWZa3tMw32NZb+xWD4gIOIznwXN17L5EJQ==","shasum":"1ebb7971073e8b5eb43b3cedb0fdf69dce3eb815","tarball":"https://registry.npmjs.org/vibe-learning/-/vibe-learning-1.0.0.tgz","fileCount":78,"unpackedSize":313277,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDcg8EVTrKxm4lGbaGv6AtQYD6V+15DH0VrztAeZADnYgIhAK0ipd+iIKH76BANxOWY8ZrA/i3/NYyITv6zJ2+te+e/"}]},"_npmUser":{"name":"jeongil-jeong","email":"jji042842@gmail.com"},"directories":{},"maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vibe-learning_1.0.0_1767924769270_0.22694863147891065"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-08T01:18:28.612Z","modified":"2026-01-09T02:12:49.939Z","0.3.0":"2026-01-08T01:18:28.940Z","0.3.1":"2026-01-08T01:20:18.352Z","0.3.2":"2026-01-08T01:57:58.633Z","0.3.3":"2026-01-08T02:23:21.704Z","0.3.4":"2026-01-08T02:34:04.225Z","0.3.5":"2026-01-08T02:34:51.774Z","0.3.6":"2026-01-08T02:38:49.235Z","0.3.7":"2026-01-08T03:03:01.994Z","0.3.8":"2026-01-08T03:19:08.048Z","0.3.9":"2026-01-08T04:37:38.960Z","0.3.10":"2026-01-08T04:43:10.650Z","0.3.11":"2026-01-08T04:51:13.195Z","0.3.12":"2026-01-08T05:01:29.916Z","0.3.13":"2026-01-08T05:05:53.657Z","0.3.14":"2026-01-08T05:10:43.608Z","0.3.15":"2026-01-08T05:15:55.790Z","0.3.16":"2026-01-08T05:26:22.267Z","0.3.17":"2026-01-08T05:40:27.488Z","0.3.18":"2026-01-08T05:44:27.900Z","0.3.19":"2026-01-08T05:46:18.662Z","0.3.20":"2026-01-08T05:49:04.212Z","0.3.21":"2026-01-08T05:54:04.598Z","0.3.22":"2026-01-08T06:02:11.687Z","0.3.23":"2026-01-08T06:03:41.339Z","0.3.24":"2026-01-08T06:24:48.498Z","0.3.26":"2026-01-08T06:59:26.788Z","0.3.31":"2026-01-08T08:31:34.265Z","0.3.33":"2026-01-08T09:21:21.631Z","1.0.0":"2026-01-09T02:12:49.428Z"},"license":"MIT","keywords":["mcp","claude","claude-code","opencode","learning","spaced-repetition","sm2","ai-coding","vibe-coding"],"description":"Learn while vibe coding - Spaced repetition learning for AI coding agents","maintainers":[{"name":"jeongil-jeong","email":"jji042842@gmail.com"}],"readme":"# VibeLearning\n\n**Learn while vibe coding** - Spaced repetition learning system for AI coding agents\n\nTurn your coding sessions into learning opportunities. VibeLearning automatically asks you questions about the concepts you're using, helping you truly understand the code you write with AI assistance.\n\n## Features\n\n- **Automatic Learning Triggers**: Just install and it works across all sessions\n- **SM-2 Algorithm**: Scientific spaced repetition (like Anki)\n- **5-Level System**: Recognition → Understanding → Comparison → Edge Cases → Architecture\n- **Fatigue Management**: 15-min cooldown, auto-pause after consecutive skips\n- **Unknown Unknowns**: Tracks concepts you don't know you don't know\n- **Report Export**: Save learning reports as markdown files\n\n## Supported Platforms\n\n| Platform | Auto Install | Features |\n|----------|--------------|----------|\n| **OpenCode** | ✅ | Plugin + MCP + /learn commands |\n| **Claude Code** | ✅ | Hooks + MCP + /learn commands |\n| Cursor | 📋 Manual | MCP server only |\n| Cline | 📋 Manual | MCP server only |\n\n## Installation\n\n### OpenCode\n\n```bash\n# Install VibeLearning for OpenCode\nnpx vibe-learning install opencode\n\n# Restart OpenCode to apply changes\n```\n\n**What gets installed:**\n- MCP server in `~/.config/opencode/opencode.json`\n- Plugin: `vibe-learning-opencode` (auto-installed via npm)\n- Command: `~/.config/opencode/command/learn.md` (for autocomplete)\n  - Plugin handles all `/learn` commands via chat.message hook\n\n### Claude Code\n\n1. Open Claude Code and run `/plugins`\n2. Go to **Marketplaces** tab\n3. Click **+ Add Marketplace**\n4. Enter: `12OneTwo12/vibe-learning`\n5. Go to **Discover** tab\n6. Select **vibe-learning** and Enter **Install**\n7. Restart Claude Code\n\n**What gets installed:**\n- MCP server (via `.mcp.json`)\n- Hooks: SessionStart, PostToolUse, Stop\n- Command: `/vibe-learning:learn`\n\n**Auto-approve MCP permissions (recommended):**\n\nClaude Code asks for MCP tool permissions every new session. To skip this, add to `~/.claude/settings.json`:\n\n```json\n{\n  \"permissions\": {\n    \"allow\": [\"mcp__vibe-learning\"]\n  }\n}\n```\n\n### Check Status\n\n```bash\nnpx vibe-learning status\n```\n\n### Manual Installation (Cursor, Cline, etc.)\n\nAdd to your MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"vibe-learning\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"vibe-learning\", \"serve\"]\n    }\n  }\n}\n```\n\n## How It Works\n\n1. **Request a task** from your AI coding agent\n2. **AI asks 2-3 questions** about your approach (Senior mode, default)\n3. **Explain your reasoning** - why this approach? what alternatives?\n4. **AI implements** after you demonstrate understanding\n5. **Progress is tracked** using spaced repetition for optimal retention\n\n## Usage\n\n### /learn Commands\n\nBoth OpenCode and Claude Code support the `/learn` command:\n\n#### Status & Control\n\n| Command | Description |\n|---------|-------------|\n| `/learn` | Show current status |\n| `/learn on` | Full learning mode (senior + after, default) |\n| `/learn off` | Turn off learning (recording continues) |\n| `/learn senior` | Enable senior mode (pre-implementation questions) |\n| `/learn senior off` | Disable senior mode |\n| `/learn after` | Enable after mode (post-implementation questions) |\n| `/learn after off` | Disable after mode |\n| `/learn pause` | Pause for 1 hour |\n| `/learn focus [area]` | Focus questions on a specific area |\n\n#### Statistics & Reports\n\n| Command | Description |\n|---------|-------------|\n| `/learn stats` | Learning statistics dashboard |\n| `/learn report` | Weekly learning report |\n| `/learn report month` | Monthly learning report |\n| `/learn report --save` | Save report as markdown file |\n| `/learn unknowns` | Unknown unknowns dashboard |\n| `/learn unknowns --save` | Save unknowns as markdown file |\n| `/learn review` | Start reviewing due concepts |\n| `/learn interview` | Interview practice mode |\n\n### Learning Levels\n\n| Level | Name | Question Style |\n|-------|------|---------------|\n| 1 | Recognition | \"Do you know what X is?\" |\n| 2 | Understanding | \"Can you explain how X works?\" |\n| 3 | Comparison | \"When would you use X instead of Y?\" |\n| 4 | Edge Cases | \"What are the pitfalls of X?\" |\n| 5 | Architecture | \"How would you design X at scale?\" |\n\n### Answering Questions\n\nWhen asked a learning question, respond naturally. The AI will evaluate your answer as:\n- **correct** - You understood it well → Level up possible\n- **partial** - Partial understanding → Stay at current level\n- **incorrect** - Wrong answer → May level down\n- **skipped** - Too busy right now → Asked again later\n\n### Learning Modes\n\nVibeLearning uses two independent toggles that can be combined:\n\n| Toggle | Default | Behavior |\n|--------|---------|----------|\n| **Senior Mode** | ✅ On | Pre-implementation questioning (2-3 rounds) |\n| **After Mode** | ✅ On | Post-task learning questions |\n\n**Mode Combinations:**\n\n| Senior | After | Result |\n|--------|-------|--------|\n| ✅ | ✅ | Full learning (default) - Questions before AND after |\n| ✅ | ❌ | Senior only - Deep pre-implementation review |\n| ❌ | ✅ | After only - Quick post-task questions |\n| ❌ | ❌ | Off - No questions (recording continues) |\n\n#### Senior Mode Details\n\nSenior mode simulates a strict senior developer reviewing your decisions:\n\n```\n**[VibeLearning Senior Mode]**\n[Round 1/3] Why this approach?\n\n[Round 2/3] What alternatives did you consider? Tradeoffs?\n\n[Round 3/3] (if needed) Hint: ... What do you think?\n\nGood thinking! [Summary]. Implementing now.\n```\n\n- **Minimum 2 rounds required** - Won't skip to implementation on first answer\n- **Strict evaluation** - Only proceeds when you demonstrate understanding of alternatives and tradeoffs\n- **Educational summary** - Provides brief explanation before implementing\n- **Learning recorded** - Discussions are recorded for spaced repetition review\n\n## MCP Tools Reference\n\nFor direct MCP integration or custom implementations:\n\n| Tool | Description |\n|------|-------------|\n| `should_ask_question` | Check if it's a good time to ask |\n| `get_concept_level` | Get current level (1-5) for a concept |\n| `record_learning` | Record learning result |\n| `record_unknown_unknown` | Register a concept the user might not know |\n| `get_stats` | Get learning statistics |\n| `get_report_data` | Get comprehensive report data |\n| `get_unknown_unknowns` | Get list of unexplored concepts |\n| `mark_explored` | Mark a concept as explored |\n| `get_due_reviews` | Get concepts due for review |\n| `get_mode` / `set_mode` | Manage learning mode |\n| `save_report` | Save report to markdown file |\n| `save_unknowns` | Save unknowns to markdown file |\n| `get_interview_data` | Get interview prep data with mastery levels |\n\n## Data Storage\n\n- **Database**: `~/.vibe-learning/learning.db` (SQLite)\n- **Reports**: `~/.vibe-learning/*.md`\n\n## Uninstallation\n\n### Automatic Uninstall\n\n```bash\nnpx vibe-learning uninstall\n```\n\nThis removes:\n- OpenCode plugin and command files\n- Claude Code command and hook files\n\n### Manual Uninstall\n\n#### OpenCode\n\n1. Remove plugin from `~/.config/opencode/opencode.json`:\n   ```json\n   {\n     \"plugin\": [\"vibe-learning-opencode\"]  // Remove this line\n   }\n   ```\n\n2. Remove MCP server from `~/.config/opencode/opencode.json`:\n   ```json\n   {\n     \"mcp\": {\n       \"vibe-learning\": { ... }  // Remove this block\n     }\n   }\n   ```\n\n3. Delete command file:\n   ```bash\n   rm ~/.config/opencode/command/learn.md\n   ```\n\n#### Claude Code\n\nRun in Claude Code:\n```\n/plugins uninstall vibe-learning\n```\n\nOr manually:\n1. Run `/plugins`\n2. Find **vibe-learning** in installed plugins\n3. Click **Uninstall**\n\n### Complete Data Removal\n\nTo also remove all learning data:\n\n```bash\nrm -rf ~/.vibe-learning/\n```\n\n## Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/jeongjeong-il/vibe-learning.git\ncd vibe-learning\n\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Run tests\nnpm test\n\n# Lint\nnpm run lint\n```\n\n## FAQ\n\n### Do I really need a plugin for this?\n\nHonestly, no. Most of VibeLearning's features can be implemented with just prompts or CLAUDE.md instructions. You could set up spaced repetition questions, senior mode discussions, and learning tracking through well-crafted system prompts alone.\n\nHowever, we built this as a plugin for those who:\n- Don't want to manually configure system prompts for every project\n- Prefer a one-click install over copy-pasting CLAUDE.md instructions\n- Want the few extra features that only MCP/plugins can provide:\n  - **Persistent SQLite database** for tracking progress across sessions\n  - **SM-2 algorithm calculations** with automatic review scheduling\n  - **Cross-project statistics** and reports\n\nIf you enjoy configuring things yourself, feel free to grab ideas from our [CLAUDE.md](./CLAUDE.md) and adapt them to your workflow.\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────┐\n│                    VibeLearning                          │\n├─────────────────────────────────────────────────────────┤\n│                                                          │\n│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │\n│  │   OpenCode  │  │ Claude Code │  │   Cursor    │     │\n│  │   Plugin    │  │   (Hooks)   │  │   (MCP)     │     │\n│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘     │\n│         │                │                │             │\n│         ▼                ▼                ▼             │\n│  ┌─────────────────────────────────────────────────┐   │\n│  │              MCP Server (Core)                   │   │\n│  │  - SM-2 Algorithm                                │   │\n│  │  - SQLite Database                               │   │\n│  │  - 14 Tools                                      │   │\n│  └─────────────────────────────────────────────────┘   │\n│                                                          │\n└─────────────────────────────────────────────────────────┘\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}