unpick 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unpick/__init__.py +4 -0
- unpick/__main__.py +3 -0
- unpick/_data/abuse_channels.json +62 -0
- unpick/_data/judge_reliability.json +20 -0
- unpick/_data/known_names.txt +50 -0
- unpick/_data/locations.json +5178 -0
- unpick/_data/paste_domains.txt +42 -0
- unpick/_data/phrases.json +125 -0
- unpick/_data/prompts/judge-v1.txt +29 -0
- unpick/_data/rotation.json +381 -0
- unpick/_data/sensitive_paths.txt +26 -0
- unpick/_data/yara/unpick.yar +125 -0
- unpick/_schemas/finding.schema.json +27 -0
- unpick/_schemas/judge.schema.json +25 -0
- unpick/_shims/apple-fm/apple-fm +0 -0
- unpick/_shims/apple-fm/main.swift +58 -0
- unpick/agentloop/__init__.py +1 -0
- unpick/agentloop/__main__.py +3 -0
- unpick/agentloop/loop.py +126 -0
- unpick/backends/__init__.py +146 -0
- unpick/backends/_common.py +29 -0
- unpick/backends/_yarax_runner.py +27 -0
- unpick/backends/cisco_mcp_scanner.py +89 -0
- unpick/backends/cisco_skill_scanner.py +53 -0
- unpick/backends/jiffy.py +52 -0
- unpick/backends/skillspector.py +54 -0
- unpick/backends/yara_x.py +63 -0
- unpick/box.py +89 -0
- unpick/canary.py +73 -0
- unpick/check.py +85 -0
- unpick/checks/__init__.py +97 -0
- unpick/checks/_config.py +62 -0
- unpick/checks/_md.py +29 -0
- unpick/checks/agent_settings.py +119 -0
- unpick/checks/autorun.py +77 -0
- unpick/checks/ci_agent_workflow.py +104 -0
- unpick/checks/encoded_execution.py +114 -0
- unpick/checks/fake_prerequisite.py +54 -0
- unpick/checks/git_autorun.py +56 -0
- unpick/checks/hidden_unicode.py +110 -0
- unpick/checks/install_redirect.py +54 -0
- unpick/checks/lookalike_names.py +117 -0
- unpick/checks/mcp_launch.py +74 -0
- unpick/checks/paste_sites.py +65 -0
- unpick/checks/render_divergence.py +45 -0
- unpick/checks/rules_file.py +44 -0
- unpick/checks/secrecy_phrases.py +39 -0
- unpick/checks/sensitive_paths.py +42 -0
- unpick/checks/tool_description.py +88 -0
- unpick/cli.py +676 -0
- unpick/consensus.py +46 -0
- unpick/consent.py +62 -0
- unpick/decisions.py +58 -0
- unpick/demo.py +120 -0
- unpick/demo_kit/sample-a/SKILL.md +25 -0
- unpick/demo_kit/sample-b/SKILL.md +20 -0
- unpick/demo_kit/tools.json +18 -0
- unpick/finding.py +70 -0
- unpick/flight.py +78 -0
- unpick/hook.py +319 -0
- unpick/inventory.py +325 -0
- unpick/judges/__init__.py +236 -0
- unpick/judges/_local.py +80 -0
- unpick/judges/api.py +63 -0
- unpick/judges/apple_fm.py +67 -0
- unpick/judges/claude_code.py +44 -0
- unpick/judges/codex.py +26 -0
- unpick/judges/fallback.py +140 -0
- unpick/judges/foundry_local.py +49 -0
- unpick/judges/gemini.py +50 -0
- unpick/judges/grok.py +26 -0
- unpick/judges/llamacpp.py +26 -0
- unpick/judges/lmstudio.py +29 -0
- unpick/judges/mlx.py +29 -0
- unpick/judges/ollama.py +40 -0
- unpick/judges/openai_local.py +32 -0
- unpick/lock.py +199 -0
- unpick/outdated.py +104 -0
- unpick/provenance.py +105 -0
- unpick/quarantine.py +244 -0
- unpick/recover.py +317 -0
- unpick/rehearse.py +224 -0
- unpick/render.py +190 -0
- unpick/report.py +130 -0
- unpick/resources.py +44 -0
- unpick/scan.py +210 -0
- unpick/sessions.py +114 -0
- unpick/ui/server.py +281 -0
- unpick/ui/static/app.css +139 -0
- unpick/ui/static/app.js +435 -0
- unpick/ui/static/index.html +158 -0
- unpick/ui/static/report.css +13 -0
- unpick/ui/static/tokens.css +34 -0
- unpick/watch.py +188 -0
- unpick-0.1.0.dist-info/METADATA +257 -0
- unpick-0.1.0.dist-info/RECORD +99 -0
- unpick-0.1.0.dist-info/WHEEL +4 -0
- unpick-0.1.0.dist-info/entry_points.txt +2 -0
- unpick-0.1.0.dist-info/licenses/LICENSE +202 -0
unpick/__init__.py
ADDED
unpick/__main__.py
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"registry": "npm",
|
|
4
|
+
"how": "On the package page click Report malware, fill in the form with all affected versions, and Send Report.",
|
|
5
|
+
"url": "https://www.npmjs.com/support",
|
|
6
|
+
"source": "https://docs.npmjs.com/reporting-malware-in-an-npm-package/"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"registry": "PyPI",
|
|
10
|
+
"how": "Sign in, open the project page, click Report project as malware at the bottom of the sidebar, and link the bad lines via inspector.pypi.io. security@pypi.org is only for flaws in PyPI itself.",
|
|
11
|
+
"url": "https://pypi.org/security/",
|
|
12
|
+
"source": "https://pypi.org/security/"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"registry": "GitHub",
|
|
16
|
+
"how": "Repository About sidebar > Report repository, or the ... menu > Report content, or the abuse contact form.",
|
|
17
|
+
"url": "https://support.github.com/contact/report-abuse?category=report-abuse&report=other&report_type=unspecified",
|
|
18
|
+
"source": "https://docs.github.com/en/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"registry": "Open VSX",
|
|
22
|
+
"how": "Email openvsx@eclipse-foundation.org; registry vulnerabilities go through eclipse.org/security.",
|
|
23
|
+
"url": "mailto:openvsx@eclipse-foundation.org",
|
|
24
|
+
"source": "https://blogs.eclipse.org/post/mika%C3%ABl-barbero/open-vsx-security-update-october-2025"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"registry": "VS Code Marketplace",
|
|
28
|
+
"how": "On the extension's Marketplace page, use Report a concern at the bottom of the More Info section.",
|
|
29
|
+
"url": "https://marketplace.visualstudio.com/vscode",
|
|
30
|
+
"source": "https://code.visualstudio.com/docs/configure/extensions/extension-runtime-security"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"registry": "ClawHub / OpenClaw",
|
|
34
|
+
"how": "Signed in, click Report skill on the skill page; packages use the package reporting command/API (not named in docs).",
|
|
35
|
+
"url": "https://clawhub.ai/",
|
|
36
|
+
"source": "https://docs.openclaw.ai/clawhub/moderation"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"registry": "skills.sh (Vercel)",
|
|
40
|
+
"how": "Report through Vercel's coordinated disclosure process and include the skill URL.",
|
|
41
|
+
"url": "https://security.vercel.com/",
|
|
42
|
+
"source": "https://www.skills.sh/contact"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"registry": "Official MCP Registry",
|
|
46
|
+
"how": "Report abuse to the underlying package registry (npm, PyPI, Docker Hub) and open a GitHub issue titled 'Abuse report: ...'.",
|
|
47
|
+
"url": "https://github.com/modelcontextprotocol/registry/issues",
|
|
48
|
+
"source": "https://modelcontextprotocol.io/registry/faq"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"registry": "Smithery",
|
|
52
|
+
"how": "none published",
|
|
53
|
+
"url": null,
|
|
54
|
+
"source": "https://smithery.ai/docs/llms.txt"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"registry": "Hugging Face",
|
|
58
|
+
"how": "Repository three-dot menu > Report the repository; this opens a public discussion.",
|
|
59
|
+
"url": "https://huggingface.co/docs/hub/moderation",
|
|
60
|
+
"source": "https://huggingface.co/docs/hub/moderation"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"apple-fm:system": {
|
|
3
|
+
"reliable": false,
|
|
4
|
+
"recorded": "2026-10-18",
|
|
5
|
+
"missed_files": 1,
|
|
6
|
+
"files": 4
|
|
7
|
+
},
|
|
8
|
+
"claude-code:default": {
|
|
9
|
+
"reliable": true,
|
|
10
|
+
"recorded": "2026-10-18",
|
|
11
|
+
"missed_files": 0,
|
|
12
|
+
"files": 4
|
|
13
|
+
},
|
|
14
|
+
"fallback:granite-4.1-3b": {
|
|
15
|
+
"reliable": false,
|
|
16
|
+
"recorded": "2026-10-18",
|
|
17
|
+
"missed_files": 3,
|
|
18
|
+
"files": 4
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Well-known vendor and package names that look-alike components imitate.
|
|
2
|
+
# A component named like one of these but published by someone else is the postmark-mcp pattern
|
|
3
|
+
# (an unofficial "postmark-mcp" on npm added a BCC to every email in v1.0.16;
|
|
4
|
+
# https://thehackernews.com/2025/09/first-malicious-mcp-server-found.html).
|
|
5
|
+
anthropic # AI vendor
|
|
6
|
+
claude # Anthropic product
|
|
7
|
+
openai # AI vendor
|
|
8
|
+
codex # OpenAI product
|
|
9
|
+
chatgpt # OpenAI product
|
|
10
|
+
github # code host
|
|
11
|
+
copilot # GitHub product
|
|
12
|
+
microsoft # vendor
|
|
13
|
+
google # vendor
|
|
14
|
+
gemini # Google product
|
|
15
|
+
cursor # editor vendor
|
|
16
|
+
windsurf # editor vendor
|
|
17
|
+
postmark # email API; impersonated by postmark-mcp
|
|
18
|
+
sendgrid # email API
|
|
19
|
+
mailgun # email API
|
|
20
|
+
resend # email API
|
|
21
|
+
stripe # payments API
|
|
22
|
+
paypal # payments
|
|
23
|
+
slack # chat
|
|
24
|
+
discord # chat
|
|
25
|
+
notion # docs
|
|
26
|
+
linear # issue tracker
|
|
27
|
+
jira # issue tracker
|
|
28
|
+
atlassian # vendor
|
|
29
|
+
supabase # database platform
|
|
30
|
+
vercel # hosting
|
|
31
|
+
cloudflare # CDN and DNS
|
|
32
|
+
netlify # hosting
|
|
33
|
+
docker # containers
|
|
34
|
+
kubernetes # orchestration
|
|
35
|
+
terraform # infra as code
|
|
36
|
+
playwright # browser automation
|
|
37
|
+
puppeteer # browser automation
|
|
38
|
+
filesystem # reference MCP server name
|
|
39
|
+
modelcontextprotocol # MCP project namespace
|
|
40
|
+
sentry # error tracking
|
|
41
|
+
datadog # monitoring
|
|
42
|
+
figma # design
|
|
43
|
+
shopify # commerce
|
|
44
|
+
twilio # messaging API
|
|
45
|
+
dropbox # storage
|
|
46
|
+
gmail # Google product
|
|
47
|
+
outlook # Microsoft product
|
|
48
|
+
salesforce # CRM
|
|
49
|
+
hubspot # CRM
|
|
50
|
+
zapier # automation
|