mirror of
https://github.com/instructkr/claude-code.git
synced 2026-04-03 17:38:49 +03:00
Rewriting Project Claw Code - Python port with Rust on the way
This commit is contained in:
70
src/setup.py
70
src/setup.py
@@ -1,9 +1,77 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import platform
|
||||
import sys
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
from .deferred_init import DeferredInitResult, run_deferred_init
|
||||
from .prefetch import PrefetchResult, start_keychain_prefetch, start_mdm_raw_read, start_project_scan
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class WorkspaceSetup:
|
||||
python_version: str = '3.13+'
|
||||
python_version: str
|
||||
implementation: str
|
||||
platform_name: str
|
||||
test_command: str = 'python3 -m unittest discover -s tests -v'
|
||||
|
||||
def startup_steps(self) -> tuple[str, ...]:
|
||||
return (
|
||||
'start top-level prefetch side effects',
|
||||
'build workspace context',
|
||||
'load mirrored command snapshot',
|
||||
'load mirrored tool snapshot',
|
||||
'prepare parity audit hooks',
|
||||
'apply trust-gated deferred init',
|
||||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class SetupReport:
|
||||
setup: WorkspaceSetup
|
||||
prefetches: tuple[PrefetchResult, ...]
|
||||
deferred_init: DeferredInitResult
|
||||
trusted: bool
|
||||
cwd: Path
|
||||
|
||||
def as_markdown(self) -> str:
|
||||
lines = [
|
||||
'# Setup Report',
|
||||
'',
|
||||
f'- Python: {self.setup.python_version} ({self.setup.implementation})',
|
||||
f'- Platform: {self.setup.platform_name}',
|
||||
f'- Trusted mode: {self.trusted}',
|
||||
f'- CWD: {self.cwd}',
|
||||
'',
|
||||
'Prefetches:',
|
||||
*(f'- {prefetch.name}: {prefetch.detail}' for prefetch in self.prefetches),
|
||||
'',
|
||||
'Deferred init:',
|
||||
*self.deferred_init.as_lines(),
|
||||
]
|
||||
return '\n'.join(lines)
|
||||
|
||||
|
||||
def build_workspace_setup() -> WorkspaceSetup:
|
||||
return WorkspaceSetup(
|
||||
python_version='.'.join(str(part) for part in sys.version_info[:3]),
|
||||
implementation=platform.python_implementation(),
|
||||
platform_name=platform.platform(),
|
||||
)
|
||||
|
||||
|
||||
def run_setup(cwd: Path | None = None, trusted: bool = True) -> SetupReport:
|
||||
root = cwd or Path(__file__).resolve().parent.parent
|
||||
prefetches = [
|
||||
start_mdm_raw_read(),
|
||||
start_keychain_prefetch(),
|
||||
start_project_scan(root),
|
||||
]
|
||||
return SetupReport(
|
||||
setup=build_workspace_setup(),
|
||||
prefetches=tuple(prefetches),
|
||||
deferred_init=run_deferred_init(trusted=trusted),
|
||||
trusted=trusted,
|
||||
cwd=root,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user