mylo-agent 0.1.0__tar.gz
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.
- mylo_agent-0.1.0/LICENSE +12 -0
- mylo_agent-0.1.0/PKG-INFO +97 -0
- mylo_agent-0.1.0/README.md +71 -0
- mylo_agent-0.1.0/pyproject.toml +41 -0
- mylo_agent-0.1.0/setup.cfg +4 -0
- mylo_agent-0.1.0/src/mylo/__init__.py +0 -0
- mylo_agent-0.1.0/src/mylo/agent.py +1578 -0
- mylo_agent-0.1.0/src/mylo/tools.py +1527 -0
- mylo_agent-0.1.0/src/mylo_agent.egg-info/PKG-INFO +97 -0
- mylo_agent-0.1.0/src/mylo_agent.egg-info/SOURCES.txt +12 -0
- mylo_agent-0.1.0/src/mylo_agent.egg-info/dependency_links.txt +1 -0
- mylo_agent-0.1.0/src/mylo_agent.egg-info/entry_points.txt +2 -0
- mylo_agent-0.1.0/src/mylo_agent.egg-info/requires.txt +12 -0
- mylo_agent-0.1.0/src/mylo_agent.egg-info/top_level.txt +1 -0
mylo_agent-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Monteluke
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
+
|
|
7
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
10
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
11
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
12
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mylo-agent
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: An agent for analyzing GitHub and GitLab repositories.
|
|
5
|
+
Author-email: Monteluke <monteluke121@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Requires-Python: >=3.9
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: langchain-anthropic>=1.4.6
|
|
14
|
+
Requires-Dist: langchain-core>=1.4.8
|
|
15
|
+
Requires-Dist: langchain-google-genai>=4.2.5
|
|
16
|
+
Requires-Dist: langchain-groq>=1.1.3
|
|
17
|
+
Requires-Dist: langchain-openai>=1.3.2
|
|
18
|
+
Requires-Dist: pygments>=2.20.0
|
|
19
|
+
Requires-Dist: python-dotenv>=1.2.2
|
|
20
|
+
Requires-Dist: requests>=2.34.2
|
|
21
|
+
Requires-Dist: rich>=15.0.0
|
|
22
|
+
Requires-Dist: textual>=0.50.0
|
|
23
|
+
Requires-Dist: tree-sitter>=0.25.2
|
|
24
|
+
Requires-Dist: tree-sitter-language-pack>=1.10.1
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
|
|
27
|
+
# Mylo
|
|
28
|
+
|
|
29
|
+
An agent build with Langchain and Textual for Github and Gitlab repo analysis.
|
|
30
|
+
|
|
31
|
+
## About Mylo
|
|
32
|
+
|
|
33
|
+
The main goal of Mylo is not to be another coding agent, but an agent that help you to find and analyse code made by other developers in a more easier and simple way. This will allow you to find repos that may fix your current problem or may suitable for your current or future projects :)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
Mylo requires **python version >= 3.9**. Install it via pip as follows,
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install mylo-agent
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
To run,
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
mylo
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Main Features
|
|
51
|
+
|
|
52
|
+
* Supports models from providers such as OpenAI, Anthropic, Google, and Groq via standard API keys. Support for additional providers is coming soon. (The api keys are stored in ~/mylo-config/.env)
|
|
53
|
+
|
|
54
|
+
* Allow you to rewrite and modify the system prompt of the agent (the system prompt can be found in ~/mylo-config/SYSTEM_PROMPT.md )
|
|
55
|
+
|
|
56
|
+
* Allow you to create model profiles and specify the memory limit for each profile.
|
|
57
|
+
|
|
58
|
+
* Each model profile shares the same memory (or context). Therefore you can switch between multiple model with different memory limit in the same session.
|
|
59
|
+
|
|
60
|
+
* The TUI displays the total token usage for each query and the total cumulative token (which is the total token usage by that model profile in one session). The token counting is seperate for each model profile that you use.
|
|
61
|
+
|
|
62
|
+
* Allows you to add github and gitlab tokens for more api requests by the agent. (The tokens are stored in ~/mylo-config/.env)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### Model Profile
|
|
67
|
+
|
|
68
|
+
Model Profile is a compact way of storing the model name, provider name, api key and memory limit. You can add name for each model profile allowing you to quick load the model that you wanted. Model profiles allow you to change the memory limit of each model that you use, giving more control over your token usage
|
|
69
|
+
|
|
70
|
+
### what is memory limit?
|
|
71
|
+
|
|
72
|
+
memory limit is the the maximum number of tokens passed to the LLM as conversation history. The TUI utilizes LangChain's trim_messages to dynamically trim older history, ensuring the context never exceeds this limit. This trimming process never affects your system prompt.
|
|
73
|
+
|
|
74
|
+
## Agent Functionalities
|
|
75
|
+
|
|
76
|
+
- Mylo can find names of repos from github and gitlab based on your specific needs
|
|
77
|
+
|
|
78
|
+
- It can show the file structure of a repository
|
|
79
|
+
|
|
80
|
+
- It can fetch / retrieve any files from a repository such as readme.md (you can ask it to retrive a file by specifying the path of the file in the repo (folder/file format). if it is not inside any folder, then just specify only the filename ).
|
|
81
|
+
|
|
82
|
+
- Mylo can also analyse the fetched files
|
|
83
|
+
|
|
84
|
+
- Mylo can analyse a file more deeply by using the AST of the file (The agent currently supports 16 languages.)
|
|
85
|
+
|
|
86
|
+
- Mylo can also write the retrieved files into disk (should provide the path to which the file is to be saved).
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
***languages supported by the agent:*** Python, Javascript, Typescript, Lua, Rust, Kotlin, Swift, Dart, C, C++, C#, Java, Go, Scala, Ruby and Php
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## Contributions
|
|
93
|
+
|
|
94
|
+
Contributions are highly welcome! Whether you are fixing a bug, optimizing performance, or adding a new tool to the agent, your help makes Mylo better.
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
For major architectural adjustments or feature requests, feel free to open an issue first to discuss what you would like to change.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Mylo
|
|
2
|
+
|
|
3
|
+
An agent build with Langchain and Textual for Github and Gitlab repo analysis.
|
|
4
|
+
|
|
5
|
+
## About Mylo
|
|
6
|
+
|
|
7
|
+
The main goal of Mylo is not to be another coding agent, but an agent that help you to find and analyse code made by other developers in a more easier and simple way. This will allow you to find repos that may fix your current problem or may suitable for your current or future projects :)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
Mylo requires **python version >= 3.9**. Install it via pip as follows,
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install mylo-agent
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
To run,
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
mylo
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Main Features
|
|
25
|
+
|
|
26
|
+
* Supports models from providers such as OpenAI, Anthropic, Google, and Groq via standard API keys. Support for additional providers is coming soon. (The api keys are stored in ~/mylo-config/.env)
|
|
27
|
+
|
|
28
|
+
* Allow you to rewrite and modify the system prompt of the agent (the system prompt can be found in ~/mylo-config/SYSTEM_PROMPT.md )
|
|
29
|
+
|
|
30
|
+
* Allow you to create model profiles and specify the memory limit for each profile.
|
|
31
|
+
|
|
32
|
+
* Each model profile shares the same memory (or context). Therefore you can switch between multiple model with different memory limit in the same session.
|
|
33
|
+
|
|
34
|
+
* The TUI displays the total token usage for each query and the total cumulative token (which is the total token usage by that model profile in one session). The token counting is seperate for each model profile that you use.
|
|
35
|
+
|
|
36
|
+
* Allows you to add github and gitlab tokens for more api requests by the agent. (The tokens are stored in ~/mylo-config/.env)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Model Profile
|
|
41
|
+
|
|
42
|
+
Model Profile is a compact way of storing the model name, provider name, api key and memory limit. You can add name for each model profile allowing you to quick load the model that you wanted. Model profiles allow you to change the memory limit of each model that you use, giving more control over your token usage
|
|
43
|
+
|
|
44
|
+
### what is memory limit?
|
|
45
|
+
|
|
46
|
+
memory limit is the the maximum number of tokens passed to the LLM as conversation history. The TUI utilizes LangChain's trim_messages to dynamically trim older history, ensuring the context never exceeds this limit. This trimming process never affects your system prompt.
|
|
47
|
+
|
|
48
|
+
## Agent Functionalities
|
|
49
|
+
|
|
50
|
+
- Mylo can find names of repos from github and gitlab based on your specific needs
|
|
51
|
+
|
|
52
|
+
- It can show the file structure of a repository
|
|
53
|
+
|
|
54
|
+
- It can fetch / retrieve any files from a repository such as readme.md (you can ask it to retrive a file by specifying the path of the file in the repo (folder/file format). if it is not inside any folder, then just specify only the filename ).
|
|
55
|
+
|
|
56
|
+
- Mylo can also analyse the fetched files
|
|
57
|
+
|
|
58
|
+
- Mylo can analyse a file more deeply by using the AST of the file (The agent currently supports 16 languages.)
|
|
59
|
+
|
|
60
|
+
- Mylo can also write the retrieved files into disk (should provide the path to which the file is to be saved).
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
***languages supported by the agent:*** Python, Javascript, Typescript, Lua, Rust, Kotlin, Swift, Dart, C, C++, C#, Java, Go, Scala, Ruby and Php
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## Contributions
|
|
67
|
+
|
|
68
|
+
Contributions are highly welcome! Whether you are fixing a bug, optimizing performance, or adding a new tool to the agent, your help makes Mylo better.
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
For major architectural adjustments or feature requests, feel free to open an issue first to discuss what you would like to change.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "mylo-agent"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "An agent for analyzing GitHub and GitLab repositories."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
authors = [
|
|
11
|
+
{ name = "Monteluke", email = "monteluke121@gmail.com" }
|
|
12
|
+
]
|
|
13
|
+
license = { text = "MIT" }
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Programming Language :: Python :: 3",
|
|
16
|
+
"License :: OSI Approved :: MIT License",
|
|
17
|
+
"Operating System :: OS Independent",
|
|
18
|
+
]
|
|
19
|
+
requires-python = ">=3.9"
|
|
20
|
+
|
|
21
|
+
dependencies = [
|
|
22
|
+
"langchain-anthropic>=1.4.6",
|
|
23
|
+
"langchain-core>=1.4.8",
|
|
24
|
+
"langchain-google-genai>=4.2.5",
|
|
25
|
+
"langchain-groq>=1.1.3",
|
|
26
|
+
"langchain-openai>=1.3.2",
|
|
27
|
+
"pygments>=2.20.0",
|
|
28
|
+
"python-dotenv>=1.2.2",
|
|
29
|
+
"requests>=2.34.2",
|
|
30
|
+
"rich>=15.0.0",
|
|
31
|
+
"textual>=0.50.0",
|
|
32
|
+
"tree-sitter>=0.25.2",
|
|
33
|
+
"tree-sitter-language-pack>=1.10.1",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.scripts]
|
|
37
|
+
mylo = "mylo.agent:main"
|
|
38
|
+
|
|
39
|
+
[tool.setuptools]
|
|
40
|
+
package-dir = { "" = "src" }
|
|
41
|
+
packages = ["mylo"]
|
|
File without changes
|