Open infrastructure/control plane for Unchained
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 31 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
cdp_click
-
cdp_get_cookies
-
cdp_key_press
-
cdp_list_frames
-
cdp_list_tab_aliases
-
cdp_navigate
-
cdp_press_enter
-
cdp_provision_cleanup
-
cdp_provision_launch
-
cdp_screenshot
-
cdp_scroll
-
cdp_set_cookies
-
cdp_set_file
-
cdp_set_tab_alias
-
cdp_type
-
cdp_wait_ready
-
ddm
-
ddm_frame
-
intel_extract
-
intel_find_paths
-
intel_probe
-
intel_shape
-
intel_stores
-
js_eval
-
js_eval_frame
-
list_connected_agents
-
list_provisioned_tabs
-
rhythm_catch
-
rhythm_execute
-
rhythm_query
-
rhythm_train
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 795aef1 · analyzer v33 · 1d ago
skills & prompt files 2
- agent-rules protostatis-unchained-infra-795aef1/CLAUDE.md
- agent-rules protostatis-unchained-infra-795aef1/unchained/CLAUDE.md
danger signals2
- dynamic code execution eval()/exec() protostatis-unchained-infra-795aef1/deploy/test_terminal_runtime_reconciler.py :52
exec(reconciler_source, reconciler_module.__dict__) - dynamic code execution eval()/exec() protostatis-unchained-infra-795aef1/unchained/test_install_update.py :410
exec(compile(helper_module, "packaged_cdp_tool.py", "exec"), namespace)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 243
filesystem 91
- fs protostatis-unchained-infra-795aef1/deploy/compose_service_diff.py :18
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/e2e_fin_workspace_runtime.py :42
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/ensure_fin_terminal_secrets.py :7
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/rebuild_research_desk_vendor_manifest.py :7
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/research_desk_install_helper_smoke.py :9
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/terminal_runtime_reconciler.py :64
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/test_compose_service_diff.py :7
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/test_deploy_source_guard.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/test_fin_terminal_secrets.py :5
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/test_hosted_context_rollout.py :5
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/test_public_terminal_pilot.py :32
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/test_runtime_context_files.py :9
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/test_terminal_runtime_reconciler.py :27
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/test_workspace_runtime_provider.py :28
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/validate_hosted_context_rollout.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/deploy/workspace_runtime_provider.py :91
from pathlib import Path - fs protostatis-unchained-infra-795aef1/research_desk_vendor/setup.py :9
long_description=(open("README.md", encoding="utf-8").read()), - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/analysis_runtime.py :2
from pathlib import Path - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/capsule_runtime.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/cli.py :11
import shutil - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/codex_adapter.py :9
from pathlib import Path - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/lab_agent.py :11
from pathlib import Path - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/lab_session.py :5
import shutil - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/mcp_client.py :9
from pathlib import Path - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/planning.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/reload_control.py :6
from pathlib import Path - fs protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/webapp.py :14
from pathlib import Path - fs protostatis-unchained-infra-795aef1/tools/oss_guard/check_agent_artifact_leaks.py :9
from pathlib import Path - fs protostatis-unchained-infra-795aef1/tools/oss_guard/check_private_imports.py :7
from pathlib import Path - fs protostatis-unchained-infra-795aef1/tools/oss_guard/check_public_doc_leaks.py :9
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/agent_package.py :17
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/agent_stream.py :85
with open(_env_obs) as _f: - fs (weak) protostatis-unchained-infra-795aef1/unchained/benchmark/agent_cli.py :88
with open(_CLAUDE_MD_PATH) as f: - fs (weak) protostatis-unchained-infra-795aef1/unchained/benchmark/runner.py :23
import shutil - fs protostatis-unchained-infra-795aef1/unchained/cdp_tool.py :180
with open(sc_path, "w") as f: - fs protostatis-unchained-infra-795aef1/unchained/cdp_tool_packaged.py :98
with open(proc_cmdline, "rb") as f: - fs protostatis-unchained-infra-795aef1/unchained/chat_agent_cli.py :29
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/chat_agent_codex.py :169
with open(path) as f: - fs protostatis-unchained-infra-795aef1/unchained/chat_agent_gemini.py :148
with open(path) as f: - fs protostatis-unchained-infra-795aef1/unchained/chat_agent_openrouter.py :435
with open(_CLAUDE_MD_PATH) as f: - fs protostatis-unchained-infra-795aef1/unchained/chat_agent_sdk.py :152
with open(path) as f: - fs protostatis-unchained-infra-795aef1/unchained/chat_event_transport.py :225
with open(path, "r", encoding="utf-8") as handle: - fs protostatis-unchained-infra-795aef1/unchained/chrome_bridge.py :30
import shutil - fs protostatis-unchained-infra-795aef1/unchained/fidelity_lab_checker.py :321
with open(report_path, "w") as f: - fs protostatis-unchained-infra-795aef1/unchained/hosted_conversations.py :122
lock_fd = os.open(lock_path, os.O_RDWR | os.O_CREAT, 0o600) - fs protostatis-unchained-infra-795aef1/unchained/maps_stream.py :46
with open(_env_obs) as _f: - fs protostatis-unchained-infra-795aef1/unchained/scheduled_tasks.py :24
from pathlib import Path - fs (weak) protostatis-unchained-infra-795aef1/unchained/scripts/research_desk_release_smoke.py :9
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/signup_agent.py :29
import shutil - fs protostatis-unchained-infra-795aef1/unchained/stream_ctl.py :30
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_agent_view_mobile_render.py :20
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_agent_view_preview_stability.py :12
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_bridge_helpers.py :194
with open(path, "w") as f: - fs protostatis-unchained-infra-795aef1/unchained/test_cdp_tool_prov_roundtrip.py :15
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_chat_archives.py :78
with open(os.path.join(mod.ARCHIVE_DIR, "arc.json"), "w") as f: - fs protostatis-unchained-infra-795aef1/unchained/test_chat_event_transport.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_chat_status.py :698
with open(path, "rb") as f: - fs protostatis-unchained-infra-795aef1/unchained/test_credit.py :63
os.unlink(self._db_path) - fs protostatis-unchained-infra-795aef1/unchained/test_credit_handlers.py :7
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_dev_script.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_dev_server_smoke.py :17
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_fin_terminal.py :9
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_fin_workspace.py :25
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_hosted_billing.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_hosted_conversations.py :9
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_install_update.py :15
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_legal_pages.py :7
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_multi_slot_provision.py :15
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_open_core_boundary.py :12
with open(path, "r", encoding="utf-8") as f: - fs protostatis-unchained-infra-795aef1/unchained/test_profile_enforcement.py :18
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_provider_key_crypto.py :35
os.unlink(self._tmp.name) - fs protostatis-unchained-infra-795aef1/unchained/test_provision_agent_isolation.py :22
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_provision_cleanup_slot.py :171
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_published_results.py :11
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_scheduled_tasks.py :5
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_scheduler_agent_access.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_semantic_mirror.py :6
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_tab_isolation.py :121
with open(path, "w") as f: - fs protostatis-unchained-infra-795aef1/unchained/test_template_transforms.py :6
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_trial_new_chat.py :8
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_trial_slot_labels.py :5
import shutil - fs protostatis-unchained-infra-795aef1/unchained/test_unbrowser_mcp_router.py :8
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/test_web_contracts.py :12
import shutil - fs protostatis-unchained-infra-795aef1/unchained/unbrowser_mcp_router.py :25
import shutil - fs protostatis-unchained-infra-795aef1/unchained/web.py :18
from pathlib import Path - fs protostatis-unchained-infra-795aef1/unchained/web_app/handlers/chat_flow.py :173
with open(entry.path) as f: - fs protostatis-unchained-infra-795aef1/unchained/web_app/handlers/install_flow.py :502
with open(bridge_path, "rb") as f: - fs protostatis-unchained-infra-795aef1/unchained/web_app/handlers/pages.py :696
with open(session_path) as f: - fs (weak) protostatis-unchained-infra-795aef1/unchained/web_app/handlers/unbrowser_demo.py :12
import shutil - fs protostatis-unchained-infra-795aef1/unchained/web_app/research_desk_page.py :314
pprovalUrl){const approvalWindow=window.open(approvalUrl,'_blank','noopener');if(approvalWindow){setConnectNote('Approve the request in the local desk tab that just opened.');}else{setConnectNote('App - fs protostatis-unchained-infra-795aef1/unchained/web_app/runtime_agents.py :44
log_fh = open(log_path, "a")
shell / exec 35
- shell protostatis-unchained-infra-795aef1/deploy/e2e_fin_workspace_runtime.py :34
import subprocess - shell protostatis-unchained-infra-795aef1/deploy/research_desk_install_helper_smoke.py :14
import subprocess - shell protostatis-unchained-infra-795aef1/deploy/terminal_runtime_reconciler.py :60
import subprocess - shell protostatis-unchained-infra-795aef1/deploy/test_deploy_source_guard.py :5
import subprocess - shell protostatis-unchained-infra-795aef1/deploy/test_fin_terminal_secrets.py :7
import subprocess - shell protostatis-unchained-infra-795aef1/deploy/test_public_terminal_pilot.py :27
import subprocess - shell protostatis-unchained-infra-795aef1/deploy/test_runtime_context_files.py :7
import subprocess - shell protostatis-unchained-infra-795aef1/deploy/test_terminal_runtime_reconciler.py :22
import subprocess - shell protostatis-unchained-infra-795aef1/deploy/workspace_runtime_provider.py :87
import subprocess - shell protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/cli.py :12
import subprocess - shell protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/codex_adapter.py :6
import subprocess - shell protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/lab_agent.py :7
import subprocess - shell protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/lab_session.py :6
import subprocess - shell protostatis-unchained-infra-795aef1/tools/oss_guard/check_public_doc_leaks.py :8
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/agent_stream.py :33
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/cdp_tool_packaged.py :30
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/chat_agent_cli.py :44
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/chrome_bridge.py :38
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/maps_stream.py :33
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/signup_agent.py :31
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/stream_ctl.py :32
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_agent_view_mobile_render.py :22
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_agent_view_preview_stability.py :13
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_cdp_tool_rhythm.py :9
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_fin_terminal.py :6
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_hosted_billing.py :9
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_install_update.py :16
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_semantic_mirror.py :7
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_template_transforms.py :7
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_trial_new_chat.py :9
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_trial_slot_labels.py :6
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/test_web_contracts.py :13
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/web.py :21
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/web_app/runtime_agents.py :7
import subprocess - shell protostatis-unchained-infra-795aef1/unchained/web_state.py :15
import subprocess
network 93
- net protostatis-unchained-infra-795aef1/deploy/e2e_fin_workspace_runtime.py :32
import socket - net protostatis-unchained-infra-795aef1/deploy/research_desk_install_helper_smoke.py :12
import socket - net protostatis-unchained-infra-795aef1/deploy/test_workspace_runtime_provider.py :754
import urllib.request - net protostatis-unchained-infra-795aef1/deploy/workspace_runtime_provider.py :909
from urllib.parse import urlsplit - net protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/capsule_runtime.py :10
from urllib.parse import urlparse - net protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/cli.py :27
from urllib.parse import parse_qs, quote_plus, urlparse - net protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/lab_agent.py :8
import urllib.error - net protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/mcp_client.py :5
import urllib.error - net protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/planning.py :10
from urllib.parse import parse_qs, quote_plus, unquote_plus, urlparse - net protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/webapp.py :16
from urllib.parse import parse_qs, quote, unquote, urlparse - net protostatis-unchained-infra-795aef1/unchained/agent_stream.py :39
import urllib.parse - net protostatis-unchained-infra-795aef1/unchained/analytics.py :12
from urllib.parse import urlparse - net protostatis-unchained-infra-795aef1/unchained/api.py :31
import urllib.parse - net (weak) protostatis-unchained-infra-795aef1/unchained/benchmark/agent_openrouter.py :10
import httpx - net (weak) protostatis-unchained-infra-795aef1/unchained/benchmark/evaluator.py :80
import httpx - net (weak) protostatis-unchained-infra-795aef1/unchained/benchmark/runner.py :25
import urllib.parse - net protostatis-unchained-infra-795aef1/unchained/cdp_tool_packaged.py :32
import urllib.request - net protostatis-unchained-infra-795aef1/unchained/chat_agent_cli.py :34
import socket - net protostatis-unchained-infra-795aef1/unchained/chat_agent_codex.py :29
import httpx - net protostatis-unchained-infra-795aef1/unchained/chat_agent_gemini.py :29
import httpx - net protostatis-unchained-infra-795aef1/unchained/chat_agent_openrouter.py :46
import httpx - net protostatis-unchained-infra-795aef1/unchained/chrome_bridge.py :34
import urllib.parse - net protostatis-unchained-infra-795aef1/unchained/domain_policy.py :6
from urllib.parse import urlparse - net protostatis-unchained-infra-795aef1/unchained/financial_workspace.py :165
import httpx - net protostatis-unchained-infra-795aef1/unchained/maps_stream.py :37
import urllib.parse - net protostatis-unchained-infra-795aef1/unchained/mcp_server.py :630
from urllib.parse import urlparse - net protostatis-unchained-infra-795aef1/unchained/nudge.py :17
from urllib.parse import urlparse - net protostatis-unchained-infra-795aef1/unchained/private_core_client.py :14
import aiohttp - net protostatis-unchained-infra-795aef1/unchained/provision_helpers.py :8
import httpx - net protostatis-unchained-infra-795aef1/unchained/published_results.py :185
import httpx - net protostatis-unchained-infra-795aef1/unchained/relay.py :33
import urllib.parse - net protostatis-unchained-infra-795aef1/unchained/scheduled_tasks.py :29
import urllib.error - net protostatis-unchained-infra-795aef1/unchained/scheduler_agent.py :6
from urllib.parse import urlsplit, urlunsplit - net protostatis-unchained-infra-795aef1/unchained/scheduler_tool.py :19
import urllib.error - net protostatis-unchained-infra-795aef1/unchained/signup_agent.py :30
import socket - net protostatis-unchained-infra-795aef1/unchained/stream_ctl.py :31
import socket - net protostatis-unchained-infra-795aef1/unchained/test_agent.py :385
with patch("urllib.request.urlopen", return_value=mock_resp): - net protostatis-unchained-infra-795aef1/unchained/test_agent_view_mobile_render.py :21
import socket - net protostatis-unchained-infra-795aef1/unchained/test_agent_view_preview_stability.py :17
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/test_auth_redirect.py :10
from urllib.parse import parse_qs, urlparse - net protostatis-unchained-infra-795aef1/unchained/test_bridge_helpers.py :12
import urllib.error - net protostatis-unchained-infra-795aef1/unchained/test_cdp_tool_prov_roundtrip.py :284
patch.object(ct.urllib.request, "urlopen", return_value=response), - net protostatis-unchained-infra-795aef1/unchained/test_chat_event_transport.py :13
from aiohttp import ClientSession, web - net protostatis-unchained-infra-795aef1/unchained/test_chat_status.py :693
with patch("chat_agent_cli.urllib.request.urlopen", side_effect=fake_urlopen): - net protostatis-unchained-infra-795aef1/unchained/test_chat_turn_resume.py :13
from aiohttp import web as aiohttp_web - net protostatis-unchained-infra-795aef1/unchained/test_codex_agent.py :6
import httpx - net protostatis-unchained-infra-795aef1/unchained/test_concurrent_tabs.py :12
import urllib.request - net protostatis-unchained-infra-795aef1/unchained/test_dev_script.py :13
from aiohttp import web as aiohttp_web - net protostatis-unchained-infra-795aef1/unchained/test_dev_server_smoke.py :24
import httpx - net protostatis-unchained-infra-795aef1/unchained/test_facebook_auth.py :10
import httpx - net protostatis-unchained-infra-795aef1/unchained/test_fin_workspace_integration.py :836
from aiohttp import web as _web - net protostatis-unchained-infra-795aef1/unchained/test_fin_workspace_runtime.py :77
with patch("httpx.Client") as m_client: - net protostatis-unchained-infra-795aef1/unchained/test_first_look_preview_proxy.py :5
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/test_first_look_preview_public.py :5
from aiohttp.test_utils import AioHTTPTestCase - net protostatis-unchained-infra-795aef1/unchained/test_first_look_preview_ws.py :17
from aiohttp import WSMsgType - net protostatis-unchained-infra-795aef1/unchained/test_github_auth.py :10
import httpx - net protostatis-unchained-infra-795aef1/unchained/test_hosted_billing.py :15
import httpx - net protostatis-unchained-infra-795aef1/unchained/test_legal_pages.py :14
from aiohttp.test_utils import make_mocked_request - net protostatis-unchained-infra-795aef1/unchained/test_multi_client_scroll.py :29
from aiohttp import web, test_utils - net protostatis-unchained-infra-795aef1/unchained/test_multi_slot_provision.py :61
"""Return a context-manager mock for urllib.request.urlopen. - net protostatis-unchained-infra-795aef1/unchained/test_openrouter_agent.py :30
import httpx - net protostatis-unchained-infra-795aef1/unchained/test_private_core_client_screencast.py :7
import aiohttp - net protostatis-unchained-infra-795aef1/unchained/test_provision_cleanup_slot.py :191
@patch("httpx.AsyncClient") - net protostatis-unchained-infra-795aef1/unchained/test_provision_helpers.py :14
@patch("provision_helpers.httpx.AsyncClient") - net protostatis-unchained-infra-795aef1/unchained/test_provision_status.py :50
"""Return a mock for urllib.request.urlopen based on port → tabs mapping.""" - net protostatis-unchained-infra-795aef1/unchained/test_published_results.py :14
from aiohttp.test_utils import TestClient, TestServer - net protostatis-unchained-infra-795aef1/unchained/test_scheduled_tasks.py :80
patch("scheduled_tasks.urllib.request.urlopen", side_effect=fake_urlopen), - net protostatis-unchained-infra-795aef1/unchained/test_tab_isolation.py :48
"""Fake urllib.request.urlopen for CDP HTTP endpoints.""" - net protostatis-unchained-infra-795aef1/unchained/test_tab_leak.py :541
with patch("urllib.request.urlopen", side_effect=_mock_urlopen): - net protostatis-unchained-infra-795aef1/unchained/test_trial_new_chat.py :16
from aiohttp import web as aiohttp_web - net protostatis-unchained-infra-795aef1/unchained/test_unbrowser_growth_analytics.py :11
from urllib.parse import quote, urlencode - net protostatis-unchained-infra-795aef1/unchained/test_unbrowser_mcp_router.py :10
import httpx - net protostatis-unchained-infra-795aef1/unchained/test_web_404.py :9
from aiohttp import web as aiohttp_web - net protostatis-unchained-infra-795aef1/unchained/test_web_contracts.py :22
from aiohttp import web as aiohttp_web - net protostatis-unchained-infra-795aef1/unchained/unbrowser_mcp_router.py :34
import httpx - net protostatis-unchained-infra-795aef1/unchained/unbrowser_ssrf_proxy.py :15
import socket - net protostatis-unchained-infra-795aef1/unchained/web.py :27
from urllib.parse import quote, urlparse - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/analytics.py :5
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/auth_admin.py :12
from urllib.parse import urlencode, urlparse - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/chat_flow.py :17
from urllib.parse import urlsplit - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/chat_stream.py :17
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/credit_internal.py :17
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/fin_terminal.py :7
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/fin_workspace.py :57
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/fin_workspace_auth.py :34
from urllib.parse import urlencode - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/install_flow.py :5
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/overlay_ws.py :15
from aiohttp import web - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/pages.py :10
from urllib.parse import quote, urlencode - net protostatis-unchained-infra-795aef1/unchained/web_app/handlers/provision.py :7
from aiohttp import web - net (weak) protostatis-unchained-infra-795aef1/unchained/web_app/handlers/unbrowser_demo.py :20
from aiohttp import web - net (weak) protostatis-unchained-infra-795aef1/unchained/web_app/handlers/x_manager_demo.py :24
from urllib.parse import quote_plus - net protostatis-unchained-infra-795aef1/unchained/web_app/research_desk_page.py :11
from urllib.parse import urlsplit - net protostatis-unchained-infra-795aef1/unchained/web_app/routes.py :12
from aiohttp import web
secrets 44
- secrets protostatis-unchained-infra-795aef1/deploy/e2e_fin_workspace_runtime.py :212
os.environ["FIN_WORKSPACE_CONTROL_TOKEN"] = "c" * 40 - secrets protostatis-unchained-infra-795aef1/deploy/workspace_runtime_provider.py :159
self.token = os.environ.get("FIN_WORKSPACE_RUNTIME_TOKEN", "").strip() - secrets protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/cli.py :6
import getpass - secrets protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/lab_agent.py :144
if os.environ.get("OPENAI_API_KEY") and os.environ.get("OPENAI_MODEL"): - secrets protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/mcp_client.py :167
resolved_api_key = api_key or os.environ.get("UNCHAINED_API_KEY") or env_file_values.get("UNCHAINED_API_KEY") - secrets protostatis-unchained-infra-795aef1/research_desk_vendor/unchained_pyreplab/webapp.py :2888
if os.environ.get("UNCHAINED_API_KEY") or os.environ.get("UNCHAINED_AGENT_ID"): - secrets protostatis-unchained-infra-795aef1/unchained/agent_package.py :221
print(json.dumps({"claim_id": os.environ["CLAIM_ID"], "claim_secret": os.environ["CLAIM_SECRET"]})) - secrets protostatis-unchained-infra-795aef1/unchained/agent_stream.py :106
OBS_PASSWORD = os.environ.get("OBS_PASSWORD", "") - secrets (weak) protostatis-unchained-infra-795aef1/unchained/benchmark/agent_openrouter.py :100
api_key = os.environ.get("OPENROUTER_API_KEY", "") - secrets (weak) protostatis-unchained-infra-795aef1/unchained/benchmark/evaluator.py :73
api_key = os.environ.get("ANTHROPIC_API_KEY", "") - secrets (weak) protostatis-unchained-infra-795aef1/unchained/benchmark/runner.py :421
if not os.environ.get("ANTHROPIC_API_KEY"): - secrets protostatis-unchained-infra-795aef1/unchained/cdp_tool_packaged.py :35
API_KEY = os.environ.get("UNCHAINED_API_KEY", "") - secrets protostatis-unchained-infra-795aef1/unchained/chat_agent_cli.py :185
KEY = os.environ.get("UNCHAINED_API_KEY", "") - secrets protostatis-unchained-infra-795aef1/unchained/chat_agent_codex.py :1040
parser.add_argument("--key", default=os.environ.get("UNCHAINED_API_KEY", ""), - secrets protostatis-unchained-infra-795aef1/unchained/chat_agent_gemini.py :825
parser.add_argument("--key", default=os.environ.get("UNCHAINED_API_KEY", ""), - secrets protostatis-unchained-infra-795aef1/unchained/chat_agent_openrouter.py :1357
self.openrouter_key = os.environ.get("OPENROUTER_API_KEY", "") - secrets protostatis-unchained-infra-795aef1/unchained/chat_agent_sdk.py :845
parser.add_argument("--key", default=os.environ.get("UNCHAINED_API_KEY", ""), - secrets protostatis-unchained-infra-795aef1/unchained/chrome_bridge.py :2556
if os.environ.get("UNCHAINED_API_KEY"): - secrets protostatis-unchained-infra-795aef1/unchained/credit.py :92
return os.environ.get("HOSTED_AGENT_SERVICE_TOKEN", "").strip() - secrets protostatis-unchained-infra-795aef1/unchained/maps_stream.py :57
OBS_PASSWORD = os.environ.get("OBS_PASSWORD", "") - secrets protostatis-unchained-infra-795aef1/unchained/private_core_client.py :85
self.token = token if token is not None else os.environ.get("PRIVATE_CORE_TOKEN", "") - secrets protostatis-unchained-infra-795aef1/unchained/published_results.py :173
api_key = os.environ.get("OPENROUTER_API_KEY", "") - secrets protostatis-unchained-infra-795aef1/unchained/relay.py :68
os.environ.get("RELAY_SHARED_TOKEN") - secrets protostatis-unchained-infra-795aef1/unchained/scheduled_tasks.py :36
DEFAULT_API_KEY = os.environ.get("UNCHAINED_API_KEY", "") - secrets protostatis-unchained-infra-795aef1/unchained/scheduler_tool.py :23
API_KEY = os.environ.get("UNCHAINED_API_KEY", "").strip() - secrets protostatis-unchained-infra-795aef1/unchained/signup_agent.py :70
_JWT_SECRET = os.environ.get("JWT_SECRET", "").strip() - secrets protostatis-unchained-infra-795aef1/unchained/stream_ctl.py :138
api_key = os.environ.get("OPENROUTER_API_KEY", "") - secrets protostatis-unchained-infra-795aef1/unchained/template_utils.py :530
facebook_app_secret = os.environ.get("FACEBOOK_APP_SECRET", "").strip() - secrets protostatis-unchained-infra-795aef1/unchained/test_credit.py :1238
os.environ["HOSTED_AGENT_SERVICE_TOKEN"] = "hosted-token-aaa" - secrets protostatis-unchained-infra-795aef1/unchained/test_credit_handlers.py :43
self._saved_token = os.environ.get("HOSTED_AGENT_SERVICE_TOKEN") - secrets protostatis-unchained-infra-795aef1/unchained/test_fin_workspace.py :1437
self._saved_token = os.environ.get("FIN_WORKSPACE_CONTROL_TOKEN") - secrets protostatis-unchained-infra-795aef1/unchained/test_fin_workspace_integration.py :107
os.environ["FIN_WORKSPACE_CONTROL_TOKEN"] = "t" * 40 - secrets protostatis-unchained-infra-795aef1/unchained/test_fin_workspace_runtime.py :74
os.environ["FIN_WORKSPACE_RUNTIME_PROVIDER_TOKEN"] = "p" * 40 - secrets protostatis-unchained-infra-795aef1/unchained/test_hosted_billing.py :39
self._saved_token = os.environ.get("HOSTED_AGENT_SERVICE_TOKEN") - secrets protostatis-unchained-infra-795aef1/unchained/test_openrouter_agent.py :32
OPENROUTER_API_KEY = os.environ.get("OPENROUTER_API_KEY", "") - secrets protostatis-unchained-infra-795aef1/unchained/test_provider_key_crypto.py :16
self._old_secret = os.environ.get("JWT_SECRET") - secrets protostatis-unchained-infra-795aef1/unchained/test_provision_cleanup_slot.py :55
old_token = os.environ.get("RELAY_SHARED_TOKEN") - secrets protostatis-unchained-infra-795aef1/unchained/test_provision_status.py :241
old_token = os.environ.get("RELAY_SHARED_TOKEN") - secrets protostatis-unchained-infra-795aef1/unchained/test_relay_auth.py :50
old_token = os.environ.get("RELAY_SHARED_TOKEN") - secrets protostatis-unchained-infra-795aef1/unchained/web.py :119
JWT_SECRET = os.environ.get("JWT_SECRET", "").strip() - secrets protostatis-unchained-infra-795aef1/unchained/web_app/handlers/auth_admin.py :201
app_secret = os.environ.get("FACEBOOK_APP_SECRET", "").strip() - secrets protostatis-unchained-infra-795aef1/unchained/web_app/handlers/fin_workspace.py :959
return os.environ.get("FIN_WORKSPACE_RUNTIME_PROXY_TOKEN", "").strip() - secrets protostatis-unchained-infra-795aef1/unchained/web_app/handlers/install_flow.py :590
print(json.dumps({{"token": os.environ["TOKEN"]}})) - secrets protostatis-unchained-infra-795aef1/unchained/web_app/runtime_tabs.py :276
hkey = os.environ.get("HEADLESS_API_KEY", "")
database 14
- db protostatis-unchained-infra-795aef1/deploy/e2e_fin_workspace_runtime.py :33
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/analytics.py :9
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/auth.py :25
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/credit.py :34
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/financial_workspace.py :35
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/published_results.py :15
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/scheduled_tasks.py :25
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/test_activation_lifecycle_state.py :7
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/test_analytics.py :6
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/test_credit.py :20
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/test_dev_server_smoke.py :18
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/test_fin_workspace.py :20
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/test_published_results.py :8
import sqlite3 - db protostatis-unchained-infra-795aef1/unchained/test_scheduled_tasks.py :6
import sqlite3
tool registrations 31
- ddm protostatis-unchained-infra-795aef1/unchained/mcp_server.py :174
- intel_probe protostatis-unchained-infra-795aef1/unchained/mcp_server.py :200
- intel_extract protostatis-unchained-infra-795aef1/unchained/mcp_server.py :219
- intel_stores protostatis-unchained-infra-795aef1/unchained/mcp_server.py :245
- intel_shape protostatis-unchained-infra-795aef1/unchained/mcp_server.py :256
- intel_find_paths protostatis-unchained-infra-795aef1/unchained/mcp_server.py :273
- cdp_navigate protostatis-unchained-infra-795aef1/unchained/mcp_server.py :290
- cdp_wait_ready protostatis-unchained-infra-795aef1/unchained/mcp_server.py :310
- cdp_click protostatis-unchained-infra-795aef1/unchained/mcp_server.py :324
- cdp_scroll protostatis-unchained-infra-795aef1/unchained/mcp_server.py :352
- cdp_type protostatis-unchained-infra-795aef1/unchained/mcp_server.py :368
- cdp_press_enter protostatis-unchained-infra-795aef1/unchained/mcp_server.py :380
- cdp_key_press protostatis-unchained-infra-795aef1/unchained/mcp_server.py :391
- js_eval protostatis-unchained-infra-795aef1/unchained/mcp_server.py :420
- js_eval_frame protostatis-unchained-infra-795aef1/unchained/mcp_server.py :440
- cdp_list_frames protostatis-unchained-infra-795aef1/unchained/mcp_server.py :460
- ddm_frame protostatis-unchained-infra-795aef1/unchained/mcp_server.py :472
- cdp_screenshot protostatis-unchained-infra-795aef1/unchained/mcp_server.py :504
- cdp_set_file protostatis-unchained-infra-795aef1/unchained/mcp_server.py :533
- cdp_set_tab_alias protostatis-unchained-infra-795aef1/unchained/mcp_server.py :546
- cdp_list_tab_aliases protostatis-unchained-infra-795aef1/unchained/mcp_server.py :565
- cdp_set_cookies protostatis-unchained-infra-795aef1/unchained/mcp_server.py :572
- cdp_get_cookies protostatis-unchained-infra-795aef1/unchained/mcp_server.py :602
- list_connected_agents protostatis-unchained-infra-795aef1/unchained/mcp_server.py :614
- cdp_provision_launch protostatis-unchained-infra-795aef1/unchained/mcp_server.py :659
- cdp_provision_cleanup protostatis-unchained-infra-795aef1/unchained/mcp_server.py :696
- list_provisioned_tabs protostatis-unchained-infra-795aef1/unchained/mcp_server.py :729
- rhythm_catch protostatis-unchained-infra-795aef1/unchained/mcp_server.py :765
- rhythm_execute protostatis-unchained-infra-795aef1/unchained/mcp_server.py :789
- rhythm_train protostatis-unchained-infra-795aef1/unchained/mcp_server.py :814
- rhythm_query protostatis-unchained-infra-795aef1/unchained/mcp_server.py :834
declared dependencies 1
- pandas@>=2.2,<3
transport_posture 2
- binds all interfaces (0.0.0.0) protostatis-unchained-infra-795aef1/unchained/api.py :469
web.run_app(app, host="0.0.0.0", port=port) - binds all interfaces (0.0.0.0) protostatis-unchained-infra-795aef1/unchained/mcp_server.py :853
host = "0.0.0.0"