afsm

v0.2.0 suspicious
5.0
Medium Risk

Async-aware documentation-first Finite State Machine."

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package shows no immediate signs of malicious intent with low scores across network, shell, and obfuscation risks. However, the metadata risk score of 4 out of 10 due to the repository's low engagement and the author's sparse history raises some concerns about its legitimacy.

  • Low engagement of the repository.
  • Sparse authorship history.
Per-check LLM notes
  • Network: No network calls detected, which is normal unless the package requires external services.
  • Shell: No shell execution detected, indicating the package does not execute system commands.
  • Obfuscation: No obfuscation patterns detected, indicating low risk of malicious activity.
  • Credentials: No credential harvesting patterns detected, suggesting safe handling of secrets and credentials.
  • Metadata: The repository's lack of engagement and the author's sparse history suggest potential risk.

🔬 Heuristic Checks

Outbound Network Calls

No suspicious network call patterns found

Code Obfuscation

No obfuscation patterns detected

Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: lut.fi>

Suspicious Page Links

All external links appear legitimate

Git Repository History score 2.5

Git history flags: Repository has zero stars and zero forks

  • Repository has zero stars and zero forks
Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with afsm
Create a fully-functional mini-app that simulates a simple traffic light system using the 'afsm' Python package. This app will demonstrate the use of async-aware, documentation-first Finite State Machines to manage the states of a traffic light (Red, Yellow, Green). Your task includes designing the state transitions, implementing them asynchronously, and providing a user interface to interact with the traffic light system.

### Requirements:
- **State Management:** Define three main states for the traffic light: Red, Yellow, and Green. Each state should have a predefined duration before transitioning to the next state.
- **Asynchronous Transitions:** Utilize the 'afsm' package to handle state transitions asynchronously, ensuring that the system can respond to external events while managing internal state changes.
- **User Interface:** Implement a basic command-line interface (CLI) that allows users to manually trigger state transitions for testing purposes.
- **Documentation:** Provide clear documentation on how to install and run the app, as well as a brief explanation of how the 'afsm' package is integrated into the traffic light system.

### Features:
1. **Automatic State Transitioning:** The traffic light should automatically transition from Red to Green, then to Yellow, and finally back to Red after a set period.
2. **Manual Override:** Users should be able to manually override the current state through the CLI, such as forcing the light to turn green even if it's not scheduled to do so.
3. **Event Handling:** Introduce asynchronous event handling to simulate real-world scenarios where external factors (e.g., emergency vehicles) might require immediate state changes.
4. **Logging:** Implement logging functionality to record state changes and any manual overrides for debugging and analysis purposes.

### Integration of 'afsm':
- Use the 'afsm' package to define the traffic light states and their transitions. Pay special attention to how you utilize the async capabilities provided by 'afsm' to manage state changes.
- Ensure that your implementation adheres to the documentation-first approach of 'afsm', clearly defining each state and transition in a structured manner.