cconnect 1.8.8__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.

Potentially problematic release.


This version of cconnect might be problematic. Click here for more details.

Files changed (102) hide show
  1. cconnect-1.8.8/PKG-INFO +44 -0
  2. cconnect-1.8.8/cconnect.egg-info/PKG-INFO +44 -0
  3. cconnect-1.8.8/cconnect.egg-info/SOURCES.txt +100 -0
  4. cconnect-1.8.8/cconnect.egg-info/dependency_links.txt +1 -0
  5. cconnect-1.8.8/cconnect.egg-info/entry_points.txt +2 -0
  6. cconnect-1.8.8/cconnect.egg-info/requires.txt +27 -0
  7. cconnect-1.8.8/cconnect.egg-info/top_level.txt +6 -0
  8. cconnect-1.8.8/core/__init__.py +0 -0
  9. cconnect-1.8.8/core/access.py +17 -0
  10. cconnect-1.8.8/core/app.py +97 -0
  11. cconnect-1.8.8/core/cli.py +584 -0
  12. cconnect-1.8.8/core/cli_manager.py +169 -0
  13. cconnect-1.8.8/core/config.py +131 -0
  14. cconnect-1.8.8/core/data_migration.py +116 -0
  15. cconnect-1.8.8/core/db.py +66 -0
  16. cconnect-1.8.8/core/models.py +110 -0
  17. cconnect-1.8.8/core/paths.py +68 -0
  18. cconnect-1.8.8/core/prompts/BLOCKS.md +17 -0
  19. cconnect-1.8.8/core/prompts/BROWSER.md +10 -0
  20. cconnect-1.8.8/core/prompts/CCONNECT.md +28 -0
  21. cconnect-1.8.8/core/prompts/COMMIT.md +13 -0
  22. cconnect-1.8.8/core/prompts/SUGGESTIONS.md +20 -0
  23. cconnect-1.8.8/core/rate_limit.py +10 -0
  24. cconnect-1.8.8/core/release.py +5 -0
  25. cconnect-1.8.8/core/responses.py +65 -0
  26. cconnect-1.8.8/core/sdk.py +63 -0
  27. cconnect-1.8.8/core/settings_defs.py +49 -0
  28. cconnect-1.8.8/core/ws.py +11 -0
  29. cconnect-1.8.8/mcps/__init__.py +79 -0
  30. cconnect-1.8.8/mcps/browser.py +122 -0
  31. cconnect-1.8.8/mcps/check_progress.py +196 -0
  32. cconnect-1.8.8/mcps/components.py +339 -0
  33. cconnect-1.8.8/mcps/media.py +67 -0
  34. cconnect-1.8.8/mcps/session.py +89 -0
  35. cconnect-1.8.8/mcps/terminal.py +139 -0
  36. cconnect-1.8.8/middleware/__init__.py +0 -0
  37. cconnect-1.8.8/middleware/error_handler.py +27 -0
  38. cconnect-1.8.8/middleware/public_auth.py +54 -0
  39. cconnect-1.8.8/middleware/security.py +40 -0
  40. cconnect-1.8.8/pyproject.toml +72 -0
  41. cconnect-1.8.8/routers/__init__.py +0 -0
  42. cconnect-1.8.8/routers/accounts.py +142 -0
  43. cconnect-1.8.8/routers/browser.py +114 -0
  44. cconnect-1.8.8/routers/capabilities.py +61 -0
  45. cconnect-1.8.8/routers/chat.py +527 -0
  46. cconnect-1.8.8/routers/claude.py +184 -0
  47. cconnect-1.8.8/routers/cli.py +52 -0
  48. cconnect-1.8.8/routers/git.py +111 -0
  49. cconnect-1.8.8/routers/health.py +28 -0
  50. cconnect-1.8.8/routers/list.py +44 -0
  51. cconnect-1.8.8/routers/network.py +105 -0
  52. cconnect-1.8.8/routers/projects.py +95 -0
  53. cconnect-1.8.8/routers/sessions.py +358 -0
  54. cconnect-1.8.8/routers/settings.py +39 -0
  55. cconnect-1.8.8/routers/shared.py +229 -0
  56. cconnect-1.8.8/routers/system.py +89 -0
  57. cconnect-1.8.8/routers/terminal.py +105 -0
  58. cconnect-1.8.8/schemas/__init__.py +0 -0
  59. cconnect-1.8.8/schemas/accounts.py +40 -0
  60. cconnect-1.8.8/schemas/chat.py +60 -0
  61. cconnect-1.8.8/schemas/network.py +23 -0
  62. cconnect-1.8.8/services/__init__.py +0 -0
  63. cconnect-1.8.8/services/account_login.py +158 -0
  64. cconnect-1.8.8/services/accounts.py +496 -0
  65. cconnect-1.8.8/services/attachments.py +59 -0
  66. cconnect-1.8.8/services/blocks.py +54 -0
  67. cconnect-1.8.8/services/browser.py +831 -0
  68. cconnect-1.8.8/services/categories.py +213 -0
  69. cconnect-1.8.8/services/chat_list.py +297 -0
  70. cconnect-1.8.8/services/claude_assets.py +337 -0
  71. cconnect-1.8.8/services/claude_manage.py +136 -0
  72. cconnect-1.8.8/services/claude_runtime.py +1217 -0
  73. cconnect-1.8.8/services/claude_status.py +70 -0
  74. cconnect-1.8.8/services/cli_info.py +296 -0
  75. cconnect-1.8.8/services/cli_settings.py +160 -0
  76. cconnect-1.8.8/services/diffs.py +44 -0
  77. cconnect-1.8.8/services/directories.py +38 -0
  78. cconnect-1.8.8/services/files.py +29 -0
  79. cconnect-1.8.8/services/git.py +26 -0
  80. cconnect-1.8.8/services/git_ops.py +263 -0
  81. cconnect-1.8.8/services/live_sessions.py +560 -0
  82. cconnect-1.8.8/services/network.py +522 -0
  83. cconnect-1.8.8/services/project_files.py +326 -0
  84. cconnect-1.8.8/services/project_watch.py +172 -0
  85. cconnect-1.8.8/services/projects.py +62 -0
  86. cconnect-1.8.8/services/providers.py +165 -0
  87. cconnect-1.8.8/services/questions.py +93 -0
  88. cconnect-1.8.8/services/repo.py +82 -0
  89. cconnect-1.8.8/services/rewind.py +94 -0
  90. cconnect-1.8.8/services/sessions.py +1593 -0
  91. cconnect-1.8.8/services/settings_store.py +117 -0
  92. cconnect-1.8.8/services/shared.py +525 -0
  93. cconnect-1.8.8/services/shared_watch.py +132 -0
  94. cconnect-1.8.8/services/speedtest.py +104 -0
  95. cconnect-1.8.8/services/system_monitor.py +285 -0
  96. cconnect-1.8.8/services/system_watch.py +99 -0
  97. cconnect-1.8.8/services/terminal.py +256 -0
  98. cconnect-1.8.8/services/todos.py +63 -0
  99. cconnect-1.8.8/services/trash.py +127 -0
  100. cconnect-1.8.8/services/usage.py +236 -0
  101. cconnect-1.8.8/services/visibility.py +157 -0
  102. cconnect-1.8.8/setup.cfg +4 -0
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: cconnect
3
+ Version: 1.8.8
4
+ Summary: Remote bridge between the CConnect client and Claude Code
5
+ Author: jahirtrap
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://cconnect.dev
8
+ Project-URL: Repository, https://github.com/jahirxtrap/cconnect
9
+ Keywords: claude,claude-code,anthropic,remote,mobile
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Topic :: Software Development
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: fastapi>=0.136.0
18
+ Requires-Dist: uvicorn[standard]>=0.45.0
19
+ Requires-Dist: pydantic>=2.13.3
20
+ Requires-Dist: loguru>=0.7.3
21
+ Requires-Dist: orjson>=3.12.0
22
+ Requires-Dist: python-dotenv>=1.0.0
23
+ Requires-Dist: slowapi>=0.1.9
24
+ Requires-Dist: httpx>=0.28.0
25
+ Requires-Dist: claude-agent-sdk>=0.2.148
26
+ Requires-Dist: qrcode>=7.4.2
27
+ Requires-Dist: sqlalchemy>=2.0.0
28
+ Requires-Dist: pillow>=10.0.0
29
+ Requires-Dist: psutil>=5.9.0
30
+ Requires-Dist: nvidia-ml-py>=12.0.0
31
+ Requires-Dist: py7zr>=1.0.0
32
+ Requires-Dist: rarfile>=4.2
33
+ Requires-Dist: watchdog>=4.0.0
34
+ Requires-Dist: pywinpty>=2.0.13; sys_platform == "win32"
35
+ Requires-Dist: ptyprocess>=0.7.0; sys_platform != "win32"
36
+ Provides-Extra: dev
37
+ Requires-Dist: pytest>=9.0.3; extra == "dev"
38
+ Requires-Dist: pytest-asyncio>=1.3.0; extra == "dev"
39
+
40
+ CConnect drives Claude Code running on your PC from an Android app, a desktop app
41
+ for Windows, Linux and macOS, or any browser.
42
+
43
+ This is the backend: install it and run `cconnect`. The apps, the docs and the
44
+ install one-liners are at https://cconnect.dev
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: cconnect
3
+ Version: 1.8.8
4
+ Summary: Remote bridge between the CConnect client and Claude Code
5
+ Author: jahirtrap
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://cconnect.dev
8
+ Project-URL: Repository, https://github.com/jahirxtrap/cconnect
9
+ Keywords: claude,claude-code,anthropic,remote,mobile
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Topic :: Software Development
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: fastapi>=0.136.0
18
+ Requires-Dist: uvicorn[standard]>=0.45.0
19
+ Requires-Dist: pydantic>=2.13.3
20
+ Requires-Dist: loguru>=0.7.3
21
+ Requires-Dist: orjson>=3.12.0
22
+ Requires-Dist: python-dotenv>=1.0.0
23
+ Requires-Dist: slowapi>=0.1.9
24
+ Requires-Dist: httpx>=0.28.0
25
+ Requires-Dist: claude-agent-sdk>=0.2.148
26
+ Requires-Dist: qrcode>=7.4.2
27
+ Requires-Dist: sqlalchemy>=2.0.0
28
+ Requires-Dist: pillow>=10.0.0
29
+ Requires-Dist: psutil>=5.9.0
30
+ Requires-Dist: nvidia-ml-py>=12.0.0
31
+ Requires-Dist: py7zr>=1.0.0
32
+ Requires-Dist: rarfile>=4.2
33
+ Requires-Dist: watchdog>=4.0.0
34
+ Requires-Dist: pywinpty>=2.0.13; sys_platform == "win32"
35
+ Requires-Dist: ptyprocess>=0.7.0; sys_platform != "win32"
36
+ Provides-Extra: dev
37
+ Requires-Dist: pytest>=9.0.3; extra == "dev"
38
+ Requires-Dist: pytest-asyncio>=1.3.0; extra == "dev"
39
+
40
+ CConnect drives Claude Code running on your PC from an Android app, a desktop app
41
+ for Windows, Linux and macOS, or any browser.
42
+
43
+ This is the backend: install it and run `cconnect`. The apps, the docs and the
44
+ install one-liners are at https://cconnect.dev
@@ -0,0 +1,100 @@
1
+ pyproject.toml
2
+ cconnect.egg-info/PKG-INFO
3
+ cconnect.egg-info/SOURCES.txt
4
+ cconnect.egg-info/dependency_links.txt
5
+ cconnect.egg-info/entry_points.txt
6
+ cconnect.egg-info/requires.txt
7
+ cconnect.egg-info/top_level.txt
8
+ core/__init__.py
9
+ core/access.py
10
+ core/app.py
11
+ core/cli.py
12
+ core/cli_manager.py
13
+ core/config.py
14
+ core/data_migration.py
15
+ core/db.py
16
+ core/models.py
17
+ core/paths.py
18
+ core/rate_limit.py
19
+ core/release.py
20
+ core/responses.py
21
+ core/sdk.py
22
+ core/settings_defs.py
23
+ core/ws.py
24
+ core/prompts/BLOCKS.md
25
+ core/prompts/BROWSER.md
26
+ core/prompts/CCONNECT.md
27
+ core/prompts/COMMIT.md
28
+ core/prompts/SUGGESTIONS.md
29
+ mcps/__init__.py
30
+ mcps/browser.py
31
+ mcps/check_progress.py
32
+ mcps/components.py
33
+ mcps/media.py
34
+ mcps/session.py
35
+ mcps/terminal.py
36
+ middleware/__init__.py
37
+ middleware/error_handler.py
38
+ middleware/public_auth.py
39
+ middleware/security.py
40
+ routers/__init__.py
41
+ routers/accounts.py
42
+ routers/browser.py
43
+ routers/capabilities.py
44
+ routers/chat.py
45
+ routers/claude.py
46
+ routers/cli.py
47
+ routers/git.py
48
+ routers/health.py
49
+ routers/list.py
50
+ routers/network.py
51
+ routers/projects.py
52
+ routers/sessions.py
53
+ routers/settings.py
54
+ routers/shared.py
55
+ routers/system.py
56
+ routers/terminal.py
57
+ schemas/__init__.py
58
+ schemas/accounts.py
59
+ schemas/chat.py
60
+ schemas/network.py
61
+ services/__init__.py
62
+ services/account_login.py
63
+ services/accounts.py
64
+ services/attachments.py
65
+ services/blocks.py
66
+ services/browser.py
67
+ services/categories.py
68
+ services/chat_list.py
69
+ services/claude_assets.py
70
+ services/claude_manage.py
71
+ services/claude_runtime.py
72
+ services/claude_status.py
73
+ services/cli_info.py
74
+ services/cli_settings.py
75
+ services/diffs.py
76
+ services/directories.py
77
+ services/files.py
78
+ services/git.py
79
+ services/git_ops.py
80
+ services/live_sessions.py
81
+ services/network.py
82
+ services/project_files.py
83
+ services/project_watch.py
84
+ services/projects.py
85
+ services/providers.py
86
+ services/questions.py
87
+ services/repo.py
88
+ services/rewind.py
89
+ services/sessions.py
90
+ services/settings_store.py
91
+ services/shared.py
92
+ services/shared_watch.py
93
+ services/speedtest.py
94
+ services/system_monitor.py
95
+ services/system_watch.py
96
+ services/terminal.py
97
+ services/todos.py
98
+ services/trash.py
99
+ services/usage.py
100
+ services/visibility.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ cconnect = core.cli:main
@@ -0,0 +1,27 @@
1
+ fastapi>=0.136.0
2
+ uvicorn[standard]>=0.45.0
3
+ pydantic>=2.13.3
4
+ loguru>=0.7.3
5
+ orjson>=3.12.0
6
+ python-dotenv>=1.0.0
7
+ slowapi>=0.1.9
8
+ httpx>=0.28.0
9
+ claude-agent-sdk>=0.2.148
10
+ qrcode>=7.4.2
11
+ sqlalchemy>=2.0.0
12
+ pillow>=10.0.0
13
+ psutil>=5.9.0
14
+ nvidia-ml-py>=12.0.0
15
+ py7zr>=1.0.0
16
+ rarfile>=4.2
17
+ watchdog>=4.0.0
18
+
19
+ [:sys_platform != "win32"]
20
+ ptyprocess>=0.7.0
21
+
22
+ [:sys_platform == "win32"]
23
+ pywinpty>=2.0.13
24
+
25
+ [dev]
26
+ pytest>=9.0.3
27
+ pytest-asyncio>=1.3.0
@@ -0,0 +1,6 @@
1
+ core
2
+ mcps
3
+ middleware
4
+ routers
5
+ schemas
6
+ services
File without changes
@@ -0,0 +1,17 @@
1
+ """The security key gating what belongs to the machine itself: shells and ignored files."""
2
+
3
+ import hmac
4
+
5
+ from core.config import PUBLIC_ACCESS_TOKEN, SECURITY_KEY
6
+
7
+ KEY_HEADER = "X-Security-Key"
8
+
9
+
10
+ def gated() -> bool:
11
+ return PUBLIC_ACCESS_TOKEN is not None
12
+
13
+
14
+ def key_matches(candidate: str) -> bool:
15
+ if not gated():
16
+ return True
17
+ return bool(SECURITY_KEY) and hmac.compare_digest(candidate or "", SECURITY_KEY)
@@ -0,0 +1,97 @@
1
+ """CConnect — FastAPI application entry point."""
2
+
3
+ import importlib
4
+ import os
5
+ import pkgutil
6
+
7
+ from contextlib import asynccontextmanager
8
+
9
+ from fastapi import FastAPI, Request
10
+ from fastapi.middleware.cors import CORSMiddleware
11
+ from fastapi.middleware.gzip import GZipMiddleware
12
+ from slowapi.errors import RateLimitExceeded
13
+
14
+ from core import data_migration, paths
15
+ from core.config import PORT
16
+ from core.db import init_db
17
+ from core.rate_limit import limiter
18
+ from core.responses import api_response
19
+ from core.sdk import ensure_sdk_installed, ensure_subscription_auth
20
+ from services import settings_store, system_monitor
21
+ from middleware.error_handler import register_error_handlers
22
+ from middleware.public_auth import register_public_auth_middleware
23
+ from middleware.security import register_security_middleware
24
+ import routers as routers_pkg
25
+
26
+
27
+ @asynccontextmanager
28
+ async def lifespan(app: FastAPI):
29
+ data_migration.migrate()
30
+ init_db()
31
+ settings_store.load()
32
+ paths.RUNTIME_FILE.write_text(f"PORT={PORT}\nPID={os.getpid()}\n", encoding="utf-8")
33
+ system_monitor.setup_log_capture()
34
+ ensure_subscription_auth()
35
+ await ensure_sdk_installed()
36
+ from services import cli_info
37
+ await cli_info.refresh()
38
+ from services import chat_list
39
+ await chat_list.hub.start()
40
+ from services import project_watch, shared_watch, system_watch
41
+ await shared_watch.hub.start()
42
+ await project_watch.hub.start()
43
+ await system_watch.hub.start()
44
+ from services import network
45
+ await network.watchdog.start()
46
+ yield
47
+ chat_list.hub.stop()
48
+ shared_watch.hub.stop()
49
+ project_watch.hub.stop()
50
+ system_watch.hub.stop()
51
+ network.watchdog.stop()
52
+ paths.RUNTIME_FILE.unlink(missing_ok=True)
53
+
54
+
55
+ app = FastAPI(
56
+ title="CConnect API",
57
+ version="0.1.0",
58
+ description="Remote bridge between the CConnect mobile app and Claude Code",
59
+ docs_url=None,
60
+ redoc_url=None,
61
+ openapi_url=None,
62
+ lifespan=lifespan,
63
+ )
64
+
65
+ app.state.limiter = limiter
66
+
67
+
68
+ async def _rate_limit_handler(request: Request, exc: RateLimitExceeded):
69
+ return api_response(status=429)
70
+
71
+
72
+ app.add_exception_handler(RateLimitExceeded, _rate_limit_handler)
73
+
74
+ app.add_middleware(GZipMiddleware, minimum_size=512)
75
+ register_security_middleware(app)
76
+ register_public_auth_middleware(app)
77
+ app.add_middleware(
78
+ CORSMiddleware,
79
+ allow_origins=["*"],
80
+ allow_methods=["*"],
81
+ allow_headers=["*"],
82
+ )
83
+ register_error_handlers(app)
84
+
85
+ for module_info in pkgutil.iter_modules(routers_pkg.__path__):
86
+ module = importlib.import_module(f"routers.{module_info.name}")
87
+ if hasattr(module, "router"):
88
+ app.include_router(module.router, prefix="/api")
89
+
90
+
91
+ @app.api_route(
92
+ "/{path:path}",
93
+ methods=["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD"],
94
+ include_in_schema=False,
95
+ )
96
+ async def catch_all(request: Request, path: str):
97
+ return api_response(status=404)