sharkit 0.1.2.dev1__tar.gz → 0.2.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.
Files changed (47) hide show
  1. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/PKG-INFO +4 -4
  2. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/README.md +3 -3
  3. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/pyproject.toml +1 -1
  4. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/__init__.py +1 -1
  5. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/app.py +13 -10
  6. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/commands/base.py +2 -2
  7. sharkit-0.2.0/src/sharkit/commands/builtins.py +792 -0
  8. sharkit-0.2.0/src/sharkit/config/__init__.py +17 -0
  9. sharkit-0.2.0/src/sharkit/console/completion.py +61 -0
  10. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/console/prompt.py +10 -5
  11. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/console/repl.py +31 -20
  12. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/exceptions.py +12 -12
  13. sharkit-0.2.0/src/sharkit/history/__init__.py +3 -0
  14. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/output/renderer.py +37 -10
  15. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/output/theme.py +9 -0
  16. sharkit-0.2.0/src/sharkit/tools/__init__.py +23 -0
  17. {sharkit-0.1.2.dev1/src/sharkit/modules → sharkit-0.2.0/src/sharkit/tools}/base.py +35 -5
  18. sharkit-0.2.0/src/sharkit/tools/loader.py +58 -0
  19. sharkit-0.2.0/src/sharkit/tools/manager.py +99 -0
  20. sharkit-0.2.0/src/sharkit/tools/osint/recon/hybrid/blackbird.py +208 -0
  21. sharkit-0.2.0/src/sharkit/tools/osint/recon/username/maigret.py +251 -0
  22. sharkit-0.2.0/src/sharkit/tools/osint/recon/username/sherlock.py +251 -0
  23. sharkit-0.2.0/src/sharkit/tools/registry.py +87 -0
  24. sharkit-0.1.2.dev1/src/sharkit/commands/builtins.py +0 -522
  25. sharkit-0.1.2.dev1/src/sharkit/config/__init__.py +0 -0
  26. sharkit-0.1.2.dev1/src/sharkit/console/completion.py +0 -41
  27. sharkit-0.1.2.dev1/src/sharkit/history/__init__.py +0 -0
  28. sharkit-0.1.2.dev1/src/sharkit/modules/__init__.py +0 -13
  29. sharkit-0.1.2.dev1/src/sharkit/modules/loader.py +0 -58
  30. sharkit-0.1.2.dev1/src/sharkit/modules/registry.py +0 -73
  31. sharkit-0.1.2.dev1/src/sharkit/modules/testing/__init__.py +0 -0
  32. sharkit-0.1.2.dev1/src/sharkit/modules/testing/demo/__init__.py +0 -0
  33. sharkit-0.1.2.dev1/src/sharkit/modules/testing/demo/echo.py +0 -92
  34. sharkit-0.1.2.dev1/src/sharkit/modules/testing/http/__init__.py +0 -0
  35. sharkit-0.1.2.dev1/src/sharkit/modules/testing/http/metadata.py +0 -83
  36. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/.gitignore +0 -0
  37. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/LICENSE +0 -0
  38. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/__main__.py +0 -0
  39. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/commands/__init__.py +0 -0
  40. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/commands/registry.py +0 -0
  41. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/config/manager.py +0 -0
  42. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/config/paths.py +0 -0
  43. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/console/__init__.py +0 -0
  44. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/history/manager.py +0 -0
  45. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/network/__init__.py +0 -0
  46. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/network/client.py +0 -0
  47. {sharkit-0.1.2.dev1 → sharkit-0.2.0}/src/sharkit/output/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sharkit
3
- Version: 0.1.2.dev1
3
+ Version: 0.2.0
4
4
  Summary: OSINT / HUMINT / GEOINT research framework
5
5
  Project-URL: Homepage, https://github.com/sshsrv/sharkit
6
6
  Project-URL: Repository, https://github.com/sshsrv/sharkit
@@ -27,7 +27,7 @@ Requires-Dist: prompt-toolkit<4.0.0,>=3.0.0
27
27
  Description-Content-Type: text/markdown
28
28
 
29
29
  <div align="center"><img width="640" height="347" alt="banner" src="https://github.com/user-attachments/assets/c027fb38-fe0f-4baa-b35f-597f9f8cf39b" /></div>
30
-
30
+ <br>
31
31
  <div align="center">
32
32
 
33
33
  ![PyPI](https://img.shields.io/pypi/v/sharkit?labelColor=000000&color=ff5faf&style=flat)
@@ -45,9 +45,9 @@ Description-Content-Type: text/markdown
45
45
 
46
46
  ### Features
47
47
  - A terminal framework for OSINT / HUMINT / GEOINT work.
48
- - Modules expose a `run` method, options, and metadata; the shell loads them as you need them.
48
+ - Tools expose a `run` method, options, and metadata; the shell loads them as you need them.
49
49
  - 15 built-in commands: `use`, `run`, `set`, `search`, `history`, `clear`, `exit`, and a few more.
50
- - Ships with two example modules: `testing/demo/echo` and `testing/http/metadata`.
50
+ - Tools are discovered automatically from `src/sharkit/tools/`.
51
51
  - `sharkit --version` shows the exact build you have, dev pre-releases included.
52
52
  - State lives in `~/.config/sharkit` and runs fine on Termux / Android.
53
53
  - To wipe it completely: `uv tool uninstall sharkit` and `rm -rf ~/.config/sharkit`.
@@ -1,5 +1,5 @@
1
1
  <div align="center"><img width="640" height="347" alt="banner" src="https://github.com/user-attachments/assets/c027fb38-fe0f-4baa-b35f-597f9f8cf39b" /></div>
2
-
2
+ <br>
3
3
  <div align="center">
4
4
 
5
5
  ![PyPI](https://img.shields.io/pypi/v/sharkit?labelColor=000000&color=ff5faf&style=flat)
@@ -17,9 +17,9 @@
17
17
 
18
18
  ### Features
19
19
  - A terminal framework for OSINT / HUMINT / GEOINT work.
20
- - Modules expose a `run` method, options, and metadata; the shell loads them as you need them.
20
+ - Tools expose a `run` method, options, and metadata; the shell loads them as you need them.
21
21
  - 15 built-in commands: `use`, `run`, `set`, `search`, `history`, `clear`, `exit`, and a few more.
22
- - Ships with two example modules: `testing/demo/echo` and `testing/http/metadata`.
22
+ - Tools are discovered automatically from `src/sharkit/tools/`.
23
23
  - `sharkit --version` shows the exact build you have, dev pre-releases included.
24
24
  - State lives in `~/.config/sharkit` and runs fine on Termux / Android.
25
25
  - To wipe it completely: `uv tool uninstall sharkit` and `rm -rf ~/.config/sharkit`.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sharkit"
3
- version = "0.1.2.dev1"
3
+ version = "0.2.0"
4
4
  description = "OSINT / HUMINT / GEOINT research framework"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -5,4 +5,4 @@ try:
5
5
 
6
6
  __version__ = _pkg_version("sharkit")
7
7
  except Exception:
8
- __version__ = "0.1.0"
8
+ __version__ = "0.2.0.dev1"
@@ -9,10 +9,11 @@ from sharkit.config.manager import ConfigManager
9
9
  from sharkit.console.repl import Console
10
10
  from sharkit.exceptions import SharkitError
11
11
  from sharkit.history.manager import HistoryManager
12
- from sharkit.modules.loader import discover_modules
13
- from sharkit.modules.registry import ModuleRegistry
14
12
  from sharkit.network.client import HttpClient
15
13
  from sharkit.output.renderer import Renderer
14
+ from sharkit.tools.loader import discover_tools
15
+ from sharkit.tools.manager import ToolManager
16
+ from sharkit.tools.registry import ToolRegistry
16
17
 
17
18
  NON_LINUX_MESSAGE = (
18
19
  "sharkit is a shark.\n"
@@ -37,18 +38,19 @@ def main() -> int:
37
38
  renderer = Renderer()
38
39
 
39
40
  if sys.platform != "linux":
40
- renderer.banner(module_count=0, message=NON_LINUX_MESSAGE)
41
+ renderer.banner(tool_count=0, message=NON_LINUX_MESSAGE)
41
42
  return 1
42
43
 
43
44
  config_manager = ConfigManager()
44
45
 
45
46
  history_manager = HistoryManager()
46
47
 
47
- module_registry = ModuleRegistry()
48
- modules_dir = Path(__file__).parent / "modules"
49
- discovered = discover_modules(modules_dir)
50
- for module_class, module_path in discovered:
51
- module_registry.register_module(module_class, module_path)
48
+ tool_registry = ToolRegistry()
49
+ tool_manager = ToolManager()
50
+ tools_dir = Path(__file__).parent / "tools"
51
+ discovered = discover_tools(tools_dir)
52
+ for tool_class, tool_path in discovered:
53
+ tool_registry.register_tool(tool_class, tool_path)
52
54
 
53
55
  command_registry = CommandRegistry()
54
56
  for command_class in BUILTIN_COMMANDS:
@@ -56,12 +58,13 @@ def main() -> int:
56
58
 
57
59
  http_client = HttpClient()
58
60
 
59
- renderer.banner(module_count=len(discovered))
61
+ renderer.banner(tool_count=len(discovered))
60
62
  print()
61
63
 
62
64
  console = Console(
63
65
  command_registry=command_registry,
64
- module_registry=module_registry,
66
+ tool_registry=tool_registry,
67
+ tool_manager=tool_manager,
65
68
  config_manager=config_manager,
66
69
  history_manager=history_manager,
67
70
  renderer=renderer,
@@ -8,8 +8,8 @@ from typing import Any
8
8
  @dataclass
9
9
  class CommandContext:
10
10
  session: dict[str, Any] = field(default_factory=dict)
11
- modules: list[Any] = field(default_factory=list)
12
- current_module: str | None = None
11
+ tools: list[Any] = field(default_factory=list)
12
+ current_tool: str | None = None
13
13
  output: Any = None
14
14
 
15
15