frontend-perception-engine 0.1.0__tar.gz → 0.1.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.
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/PKG-INFO +16 -4
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/README.md +15 -3
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/pyproject.toml +2 -1
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/frontend_perception_engine.egg-info/PKG-INFO +16 -4
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/frontend_perception_engine.egg-info/SOURCES.txt +2 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/frontend_perception_engine.egg-info/entry_points.txt +1 -0
- frontend_perception_engine-0.1.2/src/navigation/cli/__init__.py +1 -0
- frontend_perception_engine-0.1.2/src/navigation/cli/install.py +204 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/setup.cfg +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/frontend_perception_engine.egg-info/dependency_links.txt +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/frontend_perception_engine.egg-info/requires.txt +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/frontend_perception_engine.egg-info/top_level.txt +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/__init__.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/browser_use/__init__.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/browser_use/agent_runner.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/browser_use/hints.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/browser_use/integration.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/browser_use/llm.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/codeGraph/__init__.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/codeGraph/crg_impl.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/codeGraph/factory.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/codeGraph/interface.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/codeGraph/null_impl.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/__init__.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/__main__.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/diff.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/envelope.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/handlers.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/instructions.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/resources.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/scan_registry.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/server.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/session_store.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/tools.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/__init__.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/artifacts.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/auth_gate.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/budget.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/cdp_hub.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/dev_insights.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/exploration.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/feature_flags.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/file_upload.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/flow_graph.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/form_probe.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/iframe_context.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/observation.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/preflight.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/rich_editors.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/route_guards.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/runner.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/scan.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/scripted_actions.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/state_manager.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/verification.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/virtual_scroll.py +0 -0
- {frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/perception/websocket_observer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: frontend-perception-engine
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Frontend perception engine with optional CRG-powered navigation hints for Browser Use.
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -55,13 +55,25 @@ Your coding agent (Cursor/Claude/Codex) remains the brain.
|
|
|
55
55
|
|
|
56
56
|
### Install
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
Recommended (quiet output + next steps):
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
|
|
61
|
+
uvx --from frontend-perception-engine frontend-perception-install
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
With Chromium for Browser Use:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
uvx --from frontend-perception-engine frontend-perception-install --with-browser
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Development install from this repo:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
python -m navigation.cli.install --editable .
|
|
62
74
|
```
|
|
63
75
|
|
|
64
|
-
|
|
76
|
+
Or classic pip:
|
|
65
77
|
|
|
66
78
|
```bash
|
|
67
79
|
pip install frontend-perception-engine
|
|
@@ -42,13 +42,25 @@ Your coding agent (Cursor/Claude/Codex) remains the brain.
|
|
|
42
42
|
|
|
43
43
|
### Install
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
Recommended (quiet output + next steps):
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
|
|
48
|
+
uvx --from frontend-perception-engine frontend-perception-install
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
With Chromium for Browser Use:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
uvx --from frontend-perception-engine frontend-perception-install --with-browser
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Development install from this repo:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
python -m navigation.cli.install --editable .
|
|
49
61
|
```
|
|
50
62
|
|
|
51
|
-
|
|
63
|
+
Or classic pip:
|
|
52
64
|
|
|
53
65
|
```bash
|
|
54
66
|
pip install frontend-perception-engine
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "frontend-perception-engine"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.2"
|
|
4
4
|
description = "Frontend perception engine with optional CRG-powered navigation hints for Browser Use."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -13,6 +13,7 @@ dependencies = [
|
|
|
13
13
|
|
|
14
14
|
[project.scripts]
|
|
15
15
|
frontend-perception-mcp = "navigation.mcp.server:main"
|
|
16
|
+
frontend-perception-install = "navigation.cli.install:main"
|
|
16
17
|
|
|
17
18
|
[project.optional-dependencies]
|
|
18
19
|
aws = ["boto3>=1.35.0"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: frontend-perception-engine
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Frontend perception engine with optional CRG-powered navigation hints for Browser Use.
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -55,13 +55,25 @@ Your coding agent (Cursor/Claude/Codex) remains the brain.
|
|
|
55
55
|
|
|
56
56
|
### Install
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
Recommended (quiet output + next steps):
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
|
|
61
|
+
uvx --from frontend-perception-engine frontend-perception-install
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
With Chromium for Browser Use:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
uvx --from frontend-perception-engine frontend-perception-install --with-browser
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Development install from this repo:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
python -m navigation.cli.install --editable .
|
|
62
74
|
```
|
|
63
75
|
|
|
64
|
-
|
|
76
|
+
Or classic pip:
|
|
65
77
|
|
|
66
78
|
```bash
|
|
67
79
|
pip install frontend-perception-engine
|
|
@@ -12,6 +12,8 @@ src/navigation/browser_use/agent_runner.py
|
|
|
12
12
|
src/navigation/browser_use/hints.py
|
|
13
13
|
src/navigation/browser_use/integration.py
|
|
14
14
|
src/navigation/browser_use/llm.py
|
|
15
|
+
src/navigation/cli/__init__.py
|
|
16
|
+
src/navigation/cli/install.py
|
|
15
17
|
src/navigation/codeGraph/__init__.py
|
|
16
18
|
src/navigation/codeGraph/crg_impl.py
|
|
17
19
|
src/navigation/codeGraph/factory.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""User-facing CLI helpers for frontend-perception-engine."""
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"""Quiet install wrapper with a simple progress indicator."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import argparse
|
|
6
|
+
import itertools
|
|
7
|
+
import platform
|
|
8
|
+
import shutil
|
|
9
|
+
import subprocess
|
|
10
|
+
import sys
|
|
11
|
+
import threading
|
|
12
|
+
import time
|
|
13
|
+
from collections.abc import Sequence
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
|
|
16
|
+
PACKAGE_NAME = 'frontend-perception-engine'
|
|
17
|
+
_SPINNER_FRAMES = '|/-\\'
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class _Spinner:
|
|
21
|
+
def __init__(self, message: str) -> None:
|
|
22
|
+
self._message = message
|
|
23
|
+
self._stop = threading.Event()
|
|
24
|
+
self._thread: threading.Thread | None = None
|
|
25
|
+
|
|
26
|
+
def __enter__(self) -> _Spinner:
|
|
27
|
+
self._thread = threading.Thread(target=self._run, daemon=True)
|
|
28
|
+
self._thread.start()
|
|
29
|
+
return self
|
|
30
|
+
|
|
31
|
+
def __exit__(self, *_args: object) -> None:
|
|
32
|
+
self._stop.set()
|
|
33
|
+
if self._thread is not None:
|
|
34
|
+
self._thread.join()
|
|
35
|
+
width = len(self._message) + 6
|
|
36
|
+
sys.stdout.write('\r' + (' ' * width) + '\r')
|
|
37
|
+
sys.stdout.flush()
|
|
38
|
+
|
|
39
|
+
def _run(self) -> None:
|
|
40
|
+
for frame in itertools.cycle(_SPINNER_FRAMES):
|
|
41
|
+
if self._stop.is_set():
|
|
42
|
+
break
|
|
43
|
+
sys.stdout.write(f'\r {frame} {self._message}')
|
|
44
|
+
sys.stdout.flush()
|
|
45
|
+
time.sleep(0.1)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _pip_available() -> bool:
|
|
49
|
+
result = subprocess.run(
|
|
50
|
+
[sys.executable, '-m', 'pip', '--version'],
|
|
51
|
+
capture_output=True,
|
|
52
|
+
)
|
|
53
|
+
return result.returncode == 0
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _build_install_command(*, upgrade: bool, editable: str | None) -> list[str]:
|
|
57
|
+
target: list[str]
|
|
58
|
+
if editable is not None:
|
|
59
|
+
target = ['-e', editable]
|
|
60
|
+
else:
|
|
61
|
+
target = [PACKAGE_NAME]
|
|
62
|
+
|
|
63
|
+
if _pip_available():
|
|
64
|
+
cmd = [
|
|
65
|
+
sys.executable,
|
|
66
|
+
'-m',
|
|
67
|
+
'pip',
|
|
68
|
+
'install',
|
|
69
|
+
'-q',
|
|
70
|
+
'--disable-pip-version-check',
|
|
71
|
+
]
|
|
72
|
+
if upgrade:
|
|
73
|
+
cmd.append('--upgrade')
|
|
74
|
+
cmd.extend(target)
|
|
75
|
+
return cmd
|
|
76
|
+
|
|
77
|
+
uv = shutil.which('uv')
|
|
78
|
+
if uv is not None:
|
|
79
|
+
cmd = [uv, 'pip', 'install', '-q']
|
|
80
|
+
if upgrade:
|
|
81
|
+
cmd.append('--upgrade')
|
|
82
|
+
cmd.extend(target)
|
|
83
|
+
return cmd
|
|
84
|
+
|
|
85
|
+
raise SystemExit(
|
|
86
|
+
'No installer available. Install pip or uv, or use:\n'
|
|
87
|
+
' uvx --from frontend-perception-engine frontend-perception-mcp\n',
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def _build_browser_install_command() -> list[str]:
|
|
92
|
+
cmd = ['uvx', 'playwright', 'install', 'chromium']
|
|
93
|
+
if platform.system() == 'Linux':
|
|
94
|
+
cmd.append('--with-deps')
|
|
95
|
+
cmd.append('--no-shell')
|
|
96
|
+
return cmd
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def _run_quiet(cmd: Sequence[str], *, label: str) -> None:
|
|
100
|
+
with _Spinner(label):
|
|
101
|
+
result = subprocess.run(
|
|
102
|
+
list(cmd),
|
|
103
|
+
capture_output=True,
|
|
104
|
+
text=True,
|
|
105
|
+
)
|
|
106
|
+
if result.returncode != 0:
|
|
107
|
+
sys.stderr.write(f'\nInstallation failed ({label}).\n')
|
|
108
|
+
if result.stderr.strip():
|
|
109
|
+
sys.stderr.write(result.stderr.strip() + '\n')
|
|
110
|
+
raise SystemExit(result.returncode or 1)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def _installed_version() -> str | None:
|
|
114
|
+
try:
|
|
115
|
+
from importlib.metadata import version
|
|
116
|
+
|
|
117
|
+
return version(PACKAGE_NAME)
|
|
118
|
+
except Exception:
|
|
119
|
+
return None
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def _print_success(*, with_browser: bool) -> None:
|
|
123
|
+
version = _installed_version()
|
|
124
|
+
version_suffix = f' ({version})' if version else ''
|
|
125
|
+
sys.stdout.write(f'\n OK Successfully installed {PACKAGE_NAME}{version_suffix}\n\n')
|
|
126
|
+
sys.stdout.write(' Run MCP server:\n')
|
|
127
|
+
sys.stdout.write(' frontend-perception-mcp\n\n')
|
|
128
|
+
sys.stdout.write(' Or with uvx (no global install):\n')
|
|
129
|
+
sys.stdout.write(' uvx --from frontend-perception-engine frontend-perception-mcp\n\n')
|
|
130
|
+
sys.stdout.write(' Cursor MCP config:\n')
|
|
131
|
+
sys.stdout.write(' {\n')
|
|
132
|
+
sys.stdout.write(' "mcpServers": {\n')
|
|
133
|
+
sys.stdout.write(' "frontend-perception": {\n')
|
|
134
|
+
sys.stdout.write(' "command": "uvx",\n')
|
|
135
|
+
sys.stdout.write(' "args": ["--from", "frontend-perception-engine", "frontend-perception-mcp"]\n')
|
|
136
|
+
sys.stdout.write(' }\n')
|
|
137
|
+
sys.stdout.write(' }\n')
|
|
138
|
+
sys.stdout.write(' }\n')
|
|
139
|
+
if with_browser:
|
|
140
|
+
sys.stdout.write('\n Chromium is ready for Browser Use.\n')
|
|
141
|
+
sys.stdout.flush()
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def _parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace:
|
|
145
|
+
parser = argparse.ArgumentParser(
|
|
146
|
+
prog='frontend-perception-install',
|
|
147
|
+
description='Install frontend-perception-engine with minimal output.',
|
|
148
|
+
)
|
|
149
|
+
parser.add_argument(
|
|
150
|
+
'-U',
|
|
151
|
+
'--upgrade',
|
|
152
|
+
action='store_true',
|
|
153
|
+
help='Upgrade an existing installation.',
|
|
154
|
+
)
|
|
155
|
+
parser.add_argument(
|
|
156
|
+
'-e',
|
|
157
|
+
'--editable',
|
|
158
|
+
metavar='PATH',
|
|
159
|
+
help='Install from a local checkout (pip install -e PATH).',
|
|
160
|
+
)
|
|
161
|
+
parser.add_argument(
|
|
162
|
+
'--with-browser',
|
|
163
|
+
action='store_true',
|
|
164
|
+
help='Also install Chromium for Browser Use (via playwright).',
|
|
165
|
+
)
|
|
166
|
+
return parser.parse_args(list(argv) if argv is not None else None)
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def main(argv: Sequence[str] | None = None) -> None:
|
|
170
|
+
args = _parse_args(argv)
|
|
171
|
+
|
|
172
|
+
if args.editable is not None:
|
|
173
|
+
editable_path = str(Path(args.editable).expanduser().resolve())
|
|
174
|
+
label = 'Installing frontend-perception-engine (editable)'
|
|
175
|
+
else:
|
|
176
|
+
editable_path = None
|
|
177
|
+
label = 'Installing frontend-perception-engine'
|
|
178
|
+
|
|
179
|
+
if (
|
|
180
|
+
not args.upgrade
|
|
181
|
+
and editable_path is None
|
|
182
|
+
and _installed_version() is not None
|
|
183
|
+
and not _pip_available()
|
|
184
|
+
):
|
|
185
|
+
_print_success(with_browser=False)
|
|
186
|
+
return
|
|
187
|
+
|
|
188
|
+
_run_quiet(_build_install_command(upgrade=args.upgrade, editable=editable_path), label=label)
|
|
189
|
+
|
|
190
|
+
if args.with_browser:
|
|
191
|
+
browser_cmd = _build_browser_install_command()
|
|
192
|
+
if shutil.which(browser_cmd[0]) is None:
|
|
193
|
+
sys.stderr.write(
|
|
194
|
+
'\nSkipped browser setup: uvx not found on PATH.\n'
|
|
195
|
+
'Install uv (https://docs.astral.sh/uv/) or run: uvx playwright install chromium\n',
|
|
196
|
+
)
|
|
197
|
+
else:
|
|
198
|
+
_run_quiet(browser_cmd, label='Setting up Chromium')
|
|
199
|
+
|
|
200
|
+
_print_success(with_browser=args.with_browser)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
if __name__ == '__main__':
|
|
204
|
+
main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/__init__.py
RENAMED
|
File without changes
|
{frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/__main__.py
RENAMED
|
File without changes
|
{frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/diff.py
RENAMED
|
File without changes
|
{frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/envelope.py
RENAMED
|
File without changes
|
{frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/server.py
RENAMED
|
File without changes
|
|
File without changes
|
{frontend_perception_engine-0.1.0 → frontend_perception_engine-0.1.2}/src/navigation/mcp/tools.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|