{"package": "puli-plg", "summary": "a proactive security and stability guardrail for your AI coding agents (Claude Code, Cursor, Antigravity, etc.). It prevents production breakages by confronting proposed code changes with a massive, \u2026", "pypi_url": "https://pypi.org/project/puli-plg", "piwheels_url": "https://www.piwheels.org/project/puli-plg", "releases": {"0.1.48": {"released": "2026-03-15 14:08:44", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.48-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.48-py3-none-any.whl", "filehash": "1fefb1a10a3999be0be5590d735a2ac679e8a63e95d262c80a37979307ab12dd", "filesize": 47518, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.47": {"released": "2026-02-23 14:26:48", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.47-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.47-py3-none-any.whl", "filehash": "05febf2a055742d46b3c2942642ce056edd02ff6f4c1ca2166461a257d1f2169", "filesize": 46080, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.46": {"released": "2026-02-23 12:55:43", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.46-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.46-py3-none-any.whl", "filehash": "9d1c515a86a74f9ab0b63826f67e8cc76e164f8eada8a668f5262743c4cebb30", "filesize": 46083, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.45": {"released": "2026-02-19 19:26:13", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.45-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.45-py3-none-any.whl", "filehash": "978b6407f977bd5e31e873f31f48253389c48afa9298d4ebe22a99295f3ec049", "filesize": 43458, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.43": {"released": "2026-02-18 14:58:09", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.43-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.43-py3-none-any.whl", "filehash": "7ba5180b2594163eecd32987b48b580240c55fbab8abd0a593f6b0e5fac737c6", "filesize": 35748, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.42": {"released": "2026-02-11 19:48:56", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.42-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.42-py3-none-any.whl", "filehash": "76d9856017861a6ca5be7a8fecc2f970bd014bdecdaf0f4adb0dcd838317be6a", "filesize": 24694, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.41": {"released": "2026-02-11 17:49:16", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.41-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.41-py3-none-any.whl", "filehash": "76e27adc5a5daf98130fa22ce73069b981a32552f1f068df6f5bbb92643c7ad7", "filesize": 24271, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.40": {"released": "2026-02-11 17:35:36", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.40-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.40-py3-none-any.whl", "filehash": "b5e2b1a8fd2535f1e58776e314a44a366589f5bcae7eb2387d6c43de9151032a", "filesize": 24269, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.39": {"released": "2026-02-11 12:36:40", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.39-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.39-py3-none-any.whl", "filehash": "9f88fc1495dec9be17be666f71a221047f549619926a91aa1841f7e9373fbd4a", "filesize": 24271, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "puli-embedding-client", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.38": {"released": "2026-02-09 18:55:58", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.38-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.38-py3-none-any.whl", "filehash": "62b60c55e62253b883d36ac1eca013d66f16c922c7a8cbfa6b1c35679e36d631", "filesize": 25766, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.37": {"released": "2026-02-09 18:38:57", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.37-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.37-py3-none-any.whl", "filehash": "7667fde9be4c761fe08037daf1a3e1dd75e3573b199b67142ada1c47549efb2c", "filesize": 25987, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.36": {"released": "2026-02-09 16:31:41", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.36-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.36-py3-none-any.whl", "filehash": "356fa81ef9824bbc3402b90f3d52dfe556078522c0391209c2f5d22cce383757", "filesize": 23789, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.35": {"released": "2026-02-09 15:51:23", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.35-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.35-py3-none-any.whl", "filehash": "e3d8c12b28a82600c19072020086c8dd88a68d6b75a10d818dfed1c30bd6a002", "filesize": 23412, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.34": {"released": "2026-02-09 15:28:08", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.34-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.34-py3-none-any.whl", "filehash": "b03e0448e2d09d4211eff97f5fb2ef60d40a6b94e614be56d87f1b1e207d9ae0", "filesize": 23413, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["anthropic", "google-auth", "google-genai", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.33": {"released": "2026-02-05 13:21:25", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.33-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.33-py3-none-any.whl", "filehash": "3c3ba0e09c5e7d5cd6b7317d71c70acf8bf069d7c87e3c1bc90acd5ee980f2aa", "filesize": 22090, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["google-auth", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.32": {"released": "2026-02-04 11:02:38", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.32-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.32-py3-none-any.whl", "filehash": "8ceddb33013bde25c348a4dce3809ea572404c188e52a01373b2bb9a480d8d5f", "filesize": 22089, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["google-auth", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.31": {"released": "2026-02-04 09:57:47", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.31-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.31-py3-none-any.whl", "filehash": "36839c9e342c3ec926d02282fb931eb5e426dd37e9a49981ec12e47eaa4ff648", "filesize": 22077, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["google-auth", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.30": {"released": "2026-02-03 19:52:51", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.30-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.30-py3-none-any.whl", "filehash": "a13c98db2033e1ee99351e5e5f9990aab7349d362858b9a7cffe59ae3d506ab1", "filesize": 21873, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.15,>=3.10", "apt_dependencies": [], "pip_dependencies": ["google-auth", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.29": {"released": "2026-02-03 19:32:38", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.29-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.29-py3-none-any.whl", "filehash": "2c15d6976653502a9a584d7329148220a58fd8d17c4456d6d2e409efcaa9a0ab", "filesize": 21871, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.14,>=3.10", "apt_dependencies": [], "pip_dependencies": ["google-auth", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.28": {"released": "2026-02-03 17:32:10", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.28-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.28-py3-none-any.whl", "filehash": "2db927f592bf87f15eea3ef3c8b71d5a99431bc4f26c9d7e56e42077b152624f", "filesize": 23743, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.14,>=3.10", "apt_dependencies": [], "pip_dependencies": ["google-auth", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.27": {"released": "2026-02-03 17:24:08", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.27-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.27-py3-none-any.whl", "filehash": "49837997f3a1f482a34a6b729285cce9169aa8a2b25ceb84af73fbbdede3a7e7", "filesize": 23743, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.14,>=3.10", "apt_dependencies": [], "pip_dependencies": ["google-auth", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}, "0.1.26": {"released": "2026-02-03 17:08:40", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"puli_plg-0.1.26-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/puli-plg/puli_plg-0.1.26-py3-none-any.whl", "filehash": "556eebedf154fdf8fdac44ce1aa36b09e170fa2a7de764ce02c54c7686de400d", "filesize": 20829, "builder_abi": "cp311", "file_abi_tag": "none", "platform": "any", "requires_python": "<3.14,>=3.10", "apt_dependencies": [], "pip_dependencies": ["google-auth", "mcp", "openai", "pydantic-ai", "python-dotenv", "pyyaml"]}}}}}