mini-agent-framework 0.2.0__tar.gz → 0.2.2__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 (77) hide show
  1. {mini_agent_framework-0.2.0/src/mini_agent_framework.egg-info → mini_agent_framework-0.2.2}/PKG-INFO +14 -2
  2. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/README.md +12 -1
  3. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/pyproject.toml +2 -2
  4. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/engine.py +13 -0
  5. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/session.py +2 -0
  6. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/builtin/__init__.py +7 -0
  7. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/builtin/browser_tools.py +31 -2
  8. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2/src/mini_agent_framework.egg-info}/PKG-INFO +14 -2
  9. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent_framework.egg-info/requires.txt +1 -0
  10. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/LICENSE +0 -0
  11. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/setup.cfg +0 -0
  12. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/__init__.py +0 -0
  13. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/cli.py +0 -0
  14. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/config/__init__.py +0 -0
  15. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/config/settings.py +0 -0
  16. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/__init__.py +0 -0
  17. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/agent.py +0 -0
  18. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/memory/__init__.py +0 -0
  19. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/memory/conversation.py +0 -0
  20. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/orchestrator.py +0 -0
  21. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/session_manager.py +0 -0
  22. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/tool_loop.py +0 -0
  23. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/utils/__init__.py +0 -0
  24. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/utils/action_tracker.py +0 -0
  25. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/utils/approval.py +0 -0
  26. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/core/utils/json_utils.py +0 -0
  27. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/llm/__init__.py +0 -0
  28. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/llm/base.py +0 -0
  29. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/prompts/__init__.py +0 -0
  30. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/prompts/orchestrator_prompt.py +0 -0
  31. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/prompts/prompt_builder.py +0 -0
  32. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/providers/__init__.py +0 -0
  33. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/providers/nvidia_provider.py +0 -0
  34. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/__init__.py +0 -0
  35. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/__init__.py +0 -0
  36. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/exceptions.py +0 -0
  37. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/logger.py +0 -0
  38. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/models.py +0 -0
  39. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tool_registry.py +0 -0
  40. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/__init__.py +0 -0
  41. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/base.py +0 -0
  42. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/check.py +0 -0
  43. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/click.py +0 -0
  44. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/close.py +0 -0
  45. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/dialog.py +0 -0
  46. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/download.py +0 -0
  47. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/extract.py +0 -0
  48. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/fill.py +0 -0
  49. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/javascript.py +0 -0
  50. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/navigate.py +0 -0
  51. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/observe.py +0 -0
  52. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/open.py +0 -0
  53. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/read.py +0 -0
  54. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/screenshot.py +0 -0
  55. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/scroll.py +0 -0
  56. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/select.py +0 -0
  57. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/storage.py +0 -0
  58. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/tabs.py +0 -0
  59. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/upload.py +0 -0
  60. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/browser/tools/wait.py +0 -0
  61. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/builtin/bash_tool.py +0 -0
  62. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/builtin/data_tools.py +0 -0
  63. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/builtin/file_tools.py +0 -0
  64. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/builtin/math_tools.py +0 -0
  65. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/builtin/system_tools.py +0 -0
  66. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/builtin/web_tools.py +0 -0
  67. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/registry/tools.py +0 -0
  68. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/skills/__init__.py +0 -0
  69. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/skills/builtin.py +0 -0
  70. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/skills/code-review/__init__.py +0 -0
  71. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/skills/code-review/code-review.md +0 -0
  72. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/skills/developer/__init__.py +0 -0
  73. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent/skills/developer/developer.md +0 -0
  74. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent_framework.egg-info/SOURCES.txt +0 -0
  75. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent_framework.egg-info/dependency_links.txt +0 -0
  76. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent_framework.egg-info/entry_points.txt +0 -0
  77. {mini_agent_framework-0.2.0 → mini_agent_framework-0.2.2}/src/mini_agent_framework.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mini-agent-framework
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: A dynamic, need-based multi-agent AI framework with session memory, action tracking, tool approval, and browser automation
5
5
  Author-email: ayyandurai <ayyandurai456@gmail.com>
6
6
  License-Expression: MIT
@@ -25,6 +25,7 @@ Requires-Dist: fastapi>=0.111
25
25
  Requires-Dist: uvicorn>=0.24
26
26
  Provides-Extra: browser
27
27
  Requires-Dist: playwright>=1.38; extra == "browser"
28
+ Requires-Dist: playwright-stealth; extra == "browser"
28
29
  Dynamic: license-file
29
30
 
30
31
  # mini-agent-framework
@@ -438,12 +439,23 @@ playwright install chromium
438
439
  ```
439
440
 
440
441
  ```python
441
- from mini_agent.registry.builtin import BROWSER_TOOLS
442
+ from mini_agent.registry.builtin import init_browser, BROWSER_TOOLS
443
+
444
+ # headless=True → invisible (default)
445
+ # headless=False → visible GUI window
446
+ init_browser(headless=False)
442
447
  orch.register_tools(BROWSER_TOOLS)
443
448
  ```
444
449
 
445
450
  Available: `browser_open`, `browser_click`, `browser_fill`, `browser_select`, `browser_scroll`, `browser_extract`, `browser_screenshot`, `browser_read`, `browser_observe`, `browser_navigate`, `browser_tabs`, `browser_download`, `browser_dialog`, `browser_wait`, `browser_check`, `browser_close`, `browser_javascript`, `browser_upload`.
446
451
 
452
+ To toggle between modes at runtime:
453
+
454
+ ```python
455
+ init_browser(headless=False) # switch to visible mode
456
+ init_browser(headless=True) # switch back to headless
457
+ ```
458
+
447
459
  ---
448
460
 
449
461
  ## Configuration
@@ -409,12 +409,23 @@ playwright install chromium
409
409
  ```
410
410
 
411
411
  ```python
412
- from mini_agent.registry.builtin import BROWSER_TOOLS
412
+ from mini_agent.registry.builtin import init_browser, BROWSER_TOOLS
413
+
414
+ # headless=True → invisible (default)
415
+ # headless=False → visible GUI window
416
+ init_browser(headless=False)
413
417
  orch.register_tools(BROWSER_TOOLS)
414
418
  ```
415
419
 
416
420
  Available: `browser_open`, `browser_click`, `browser_fill`, `browser_select`, `browser_scroll`, `browser_extract`, `browser_screenshot`, `browser_read`, `browser_observe`, `browser_navigate`, `browser_tabs`, `browser_download`, `browser_dialog`, `browser_wait`, `browser_check`, `browser_close`, `browser_javascript`, `browser_upload`.
417
421
 
422
+ To toggle between modes at runtime:
423
+
424
+ ```python
425
+ init_browser(headless=False) # switch to visible mode
426
+ init_browser(headless=True) # switch back to headless
427
+ ```
428
+
418
429
  ---
419
430
 
420
431
  ## Configuration
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mini-agent-framework"
7
- version = "0.2.0"
7
+ version = "0.2.2"
8
8
  description = "A dynamic, need-based multi-agent AI framework with session memory, action tracking, tool approval, and browser automation"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -30,7 +30,7 @@ dependencies = [
30
30
  ]
31
31
 
32
32
  [project.optional-dependencies]
33
- browser = ["playwright>=1.38"]
33
+ browser = ["playwright>=1.38", "playwright-stealth"]
34
34
 
35
35
  [project.scripts]
36
36
  mini-agent-install-browser = "mini_agent.cli:install_browser"
@@ -22,6 +22,12 @@ from .exceptions import (
22
22
  BrowserTimeoutError,
23
23
  TabNotFoundError,
24
24
  )
25
+ try:
26
+ from playwright_stealth import stealth_sync
27
+ _STEALTH_AVAILABLE = True
28
+ except ImportError:
29
+ _STEALTH_AVAILABLE = False
30
+
25
31
  from .logger import get_logger
26
32
 
27
33
  logger = get_logger(__name__)
@@ -77,8 +83,10 @@ class BrowserManager:
77
83
  slow_mo_ms: int = 0,
78
84
  extra_launch_args: Optional[List[str]] = None,
79
85
  proxy: Optional[Dict[str, str]] = None,
86
+ stealth: bool = True,
80
87
  ):
81
88
  self.headless = headless
89
+ self.stealth = stealth
82
90
  self.browser_type = browser_type
83
91
  self.downloads_dir = os.path.abspath(downloads_dir)
84
92
  self.screenshots_dir = os.path.abspath(screenshots_dir)
@@ -167,6 +175,11 @@ class BrowserManager:
167
175
  async def open_tab(self, url: Optional[str] = None) -> str:
168
176
  self._ensure_started()
169
177
  page = await self._context.new_page()
178
+ if self.stealth:
179
+ if _STEALTH_AVAILABLE:
180
+ await stealth_sync(page)
181
+ else:
182
+ logger.warning("Stealth enabled but playwright_stealth not installed. Run: pip install playwright-stealth")
170
183
  self._tab_counter += 1
171
184
  tab_id = f"tab-{self._tab_counter}"
172
185
  state = TabState(page=page, tab_id=tab_id)
@@ -23,6 +23,7 @@ class BrowserSession:
23
23
  default_timeout_ms: int = 30_000,
24
24
  slow_mo_ms: int = 0,
25
25
  proxy: Optional[Dict[str, str]] = None,
26
+ stealth: bool = True,
26
27
  ):
27
28
  self._manager = BrowserManager(
28
29
  headless=headless,
@@ -34,6 +35,7 @@ class BrowserSession:
34
35
  default_timeout_ms=default_timeout_ms,
35
36
  slow_mo_ms=slow_mo_ms,
36
37
  proxy=proxy,
38
+ stealth=stealth,
37
39
  )
38
40
  self._registry = ToolRegistry(self._manager)
39
41
  self._started = False
@@ -32,6 +32,10 @@ def _get_browser_tools():
32
32
  from .browser_tools import BROWSER_TOOLS
33
33
  return BROWSER_TOOLS
34
34
 
35
+ def _get_init_browser():
36
+ from .browser_tools import init_browser
37
+ return init_browser
38
+
35
39
  BUILTIN_TOOLS = FILE_TOOLS + WEB_TOOLS + DATA_TOOLS + MATH_TOOLS + SYSTEM_TOOLS + BASH_TOOL
36
40
 
37
41
 
@@ -40,6 +44,8 @@ def __getattr__(name):
40
44
  return BUILTIN_TOOLS + _get_browser_tools()
41
45
  if name == "BROWSER_TOOLS":
42
46
  return _get_browser_tools()
47
+ if name == "init_browser":
48
+ return _get_init_browser()
43
49
  raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
44
50
 
45
51
  __all__ = [
@@ -52,4 +58,5 @@ __all__ = [
52
58
  "SYSTEM_TOOLS",
53
59
  "BASH_TOOL",
54
60
  "BROWSER_TOOLS",
61
+ "init_browser",
55
62
  ]
@@ -28,6 +28,35 @@ _lock = threading.Lock()
28
28
  _agent = None
29
29
  _loop = None
30
30
  _IMPORT_ERROR = None
31
+ _headless_mode = True
32
+ _stealth_mode = True
33
+
34
+
35
+ def init_browser(headless: bool = True, stealth: bool = True):
36
+ """Configure browser mode before registering BROWSER_TOOLS.
37
+
38
+ Call BEFORE register_tools(BROWSER_TOOLS), or to restart with a
39
+ different setting at any point.
40
+
41
+ Parameters
42
+ ----------
43
+ headless : bool
44
+ True → invisible browser (default)
45
+ False → visible GUI window
46
+ stealth : bool
47
+ True → enable Playwright stealth (avoids bot detection, default)
48
+ False → disable stealth (debugging)
49
+ """
50
+ global _headless_mode, _stealth_mode, _agent, _loop
51
+ if _agent is not None:
52
+ try:
53
+ _loop.run_until_complete(_agent._manager.shutdown())
54
+ except Exception:
55
+ pass
56
+ _agent = None
57
+ _loop = None
58
+ _headless_mode = headless
59
+ _stealth_mode = stealth
31
60
 
32
61
 
33
62
  def _auto_install_chromium():
@@ -66,7 +95,7 @@ def _ensure_browser():
66
95
  try:
67
96
  _loop = asyncio.new_event_loop()
68
97
  asyncio.set_event_loop(_loop)
69
- _agent = BrowserSession(headless=True)
98
+ _agent = BrowserSession(headless=_headless_mode, stealth=_stealth_mode)
70
99
  _loop.run_until_complete(_agent.start())
71
100
  except Exception as e:
72
101
  error_msg = str(e).lower()
@@ -75,7 +104,7 @@ def _ensure_browser():
75
104
  _auto_install_chromium()
76
105
  _loop = asyncio.new_event_loop()
77
106
  asyncio.set_event_loop(_loop)
78
- _agent = BrowserSession(headless=True)
107
+ _agent = BrowserSession(headless=_headless_mode, stealth=_stealth_mode)
79
108
  _loop.run_until_complete(_agent.start())
80
109
  return
81
110
  except Exception as retry_err:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mini-agent-framework
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: A dynamic, need-based multi-agent AI framework with session memory, action tracking, tool approval, and browser automation
5
5
  Author-email: ayyandurai <ayyandurai456@gmail.com>
6
6
  License-Expression: MIT
@@ -25,6 +25,7 @@ Requires-Dist: fastapi>=0.111
25
25
  Requires-Dist: uvicorn>=0.24
26
26
  Provides-Extra: browser
27
27
  Requires-Dist: playwright>=1.38; extra == "browser"
28
+ Requires-Dist: playwright-stealth; extra == "browser"
28
29
  Dynamic: license-file
29
30
 
30
31
  # mini-agent-framework
@@ -438,12 +439,23 @@ playwright install chromium
438
439
  ```
439
440
 
440
441
  ```python
441
- from mini_agent.registry.builtin import BROWSER_TOOLS
442
+ from mini_agent.registry.builtin import init_browser, BROWSER_TOOLS
443
+
444
+ # headless=True → invisible (default)
445
+ # headless=False → visible GUI window
446
+ init_browser(headless=False)
442
447
  orch.register_tools(BROWSER_TOOLS)
443
448
  ```
444
449
 
445
450
  Available: `browser_open`, `browser_click`, `browser_fill`, `browser_select`, `browser_scroll`, `browser_extract`, `browser_screenshot`, `browser_read`, `browser_observe`, `browser_navigate`, `browser_tabs`, `browser_download`, `browser_dialog`, `browser_wait`, `browser_check`, `browser_close`, `browser_javascript`, `browser_upload`.
446
451
 
452
+ To toggle between modes at runtime:
453
+
454
+ ```python
455
+ init_browser(headless=False) # switch to visible mode
456
+ init_browser(headless=True) # switch back to headless
457
+ ```
458
+
447
459
  ---
448
460
 
449
461
  ## Configuration
@@ -8,3 +8,4 @@ uvicorn>=0.24
8
8
 
9
9
  [browser]
10
10
  playwright>=1.38
11
+ playwright-stealth