Make the repository's primary source tree genuinely Python

The old tracked TypeScript snapshot has been removed from the repository history and the root  directory is now a Python porting workspace. README and tests now describe and verify the Python-first layout instead of treating the exposed snapshot as the active source tree.

A local archive can still exist outside Git, but the tracked repository now presents only the Python porting surface, related essay context, and OmX workflow artifacts.

Constraint: Tracked history should collapse to a single commit while excluding the archived snapshot from Git
Rejected: Keep the exposed TypeScript tree in tracked history under an archive path | user explicitly wanted only the Python porting repo state in Git
Confidence: medium
Scope-risk: broad
Reversibility: messy
Directive: Keep future tracked additions focused on the Python port itself; do not reintroduce the exposed snapshot into Git history
Tested: python3 -m unittest discover -s tests -v; python3 -m src.main summary; git diff --check
Not-tested: Behavioral parity with the original TypeScript system beyond the current Python workspace surface
This commit is contained in:
instructkr
2026-03-31 05:38:29 -07:00
commit 507c2460b9
92 changed files with 3984 additions and 0 deletions

19
src/QueryEngine.py Normal file
View File

@@ -0,0 +1,19 @@
from __future__ import annotations
from .query_engine import QueryEnginePort
from .runtime import PortRuntime
class QueryEngineRuntime(QueryEnginePort):
def route(self, prompt: str, limit: int = 5) -> str:
matches = PortRuntime().route_prompt(prompt, limit=limit)
lines = ['# Query Engine Route', '', f'Prompt: {prompt}', '']
if not matches:
lines.append('No mirrored command/tool matches found.')
return '\n'.join(lines)
lines.append('Matches:')
lines.extend(f'- [{match.kind}] {match.name} ({match.score}) — {match.source_hint}' for match in matches)
return '\n'.join(lines)
__all__ = ['QueryEnginePort', 'QueryEngineRuntime']

15
src/Tool.py Normal file
View File

@@ -0,0 +1,15 @@
from __future__ import annotations
from dataclasses import dataclass
@dataclass(frozen=True)
class ToolDefinition:
name: str
purpose: str
DEFAULT_TOOLS = (
ToolDefinition('port_manifest', 'Summarize the active Python workspace'),
ToolDefinition('query_engine', 'Render a Python-first porting summary'),
)

19
src/__init__.py Normal file
View File

@@ -0,0 +1,19 @@
"""Python porting workspace for the Claude Code rewrite effort."""
from .commands import PORTED_COMMANDS, build_command_backlog
from .parity_audit import ParityAuditResult, run_parity_audit
from .port_manifest import PortManifest, build_port_manifest
from .query_engine import QueryEnginePort
from .tools import PORTED_TOOLS, build_tool_backlog
__all__ = [
'ParityAuditResult',
'PortManifest',
'QueryEnginePort',
'PORTED_COMMANDS',
'PORTED_TOOLS',
'build_command_backlog',
'build_port_manifest',
'build_tool_backlog',
'run_parity_audit',
]

16
src/assistant/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `assistant` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'assistant.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/bootstrap/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `bootstrap` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'bootstrap.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/bridge/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `bridge` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'bridge.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/buddy/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `buddy` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'buddy.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/cli/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `cli` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'cli.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

58
src/commands.py Normal file
View File

@@ -0,0 +1,58 @@
from __future__ import annotations
import json
from functools import lru_cache
from pathlib import Path
from .models import PortingBacklog, PortingModule
SNAPSHOT_PATH = Path(__file__).resolve().parent / 'reference_data' / 'commands_snapshot.json'
@lru_cache(maxsize=1)
def load_command_snapshot() -> tuple[PortingModule, ...]:
raw_entries = json.loads(SNAPSHOT_PATH.read_text())
return tuple(
PortingModule(
name=entry['name'],
responsibility=entry['responsibility'],
source_hint=entry['source_hint'],
status='mirrored',
)
for entry in raw_entries
)
PORTED_COMMANDS = load_command_snapshot()
def build_command_backlog() -> PortingBacklog:
return PortingBacklog(title='Command surface', modules=list(PORTED_COMMANDS))
def command_names() -> list[str]:
return [module.name for module in PORTED_COMMANDS]
def get_command(name: str) -> PortingModule | None:
needle = name.lower()
for module in PORTED_COMMANDS:
if module.name.lower() == needle:
return module
return None
def find_commands(query: str, limit: int = 20) -> list[PortingModule]:
needle = query.lower()
matches = [module for module in PORTED_COMMANDS if needle in module.name.lower() or needle in module.source_hint.lower()]
return matches[:limit]
def render_command_index(limit: int = 20, query: str | None = None) -> str:
modules = find_commands(query, limit) if query else list(PORTED_COMMANDS[:limit])
lines = [f'Command entries: {len(PORTED_COMMANDS)}', '']
if query:
lines.append(f'Filtered by: {query}')
lines.append('')
lines.extend(f'- {module.name}{module.source_hint}' for module in modules)
return '\n'.join(lines)

View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `components` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'components.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/constants/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `constants` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'constants.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/context.py Normal file
View File

@@ -0,0 +1,16 @@
from __future__ import annotations
from dataclasses import dataclass
from pathlib import Path
@dataclass(frozen=True)
class PortContext:
source_root: Path
tests_root: Path
assets_root: Path
def build_port_context(base: Path | None = None) -> PortContext:
root = base or Path(__file__).resolve().parent.parent
return PortContext(source_root=root / 'src', tests_root=root / 'tests', assets_root=root / 'assets')

View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `coordinator` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'coordinator.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

8
src/costHook.py Normal file
View File

@@ -0,0 +1,8 @@
from __future__ import annotations
from .cost_tracker import CostTracker
def apply_cost_hook(tracker: CostTracker, label: str, units: int) -> CostTracker:
tracker.record(label, units)
return tracker

13
src/cost_tracker.py Normal file
View File

@@ -0,0 +1,13 @@
from __future__ import annotations
from dataclasses import dataclass, field
@dataclass
class CostTracker:
total_units: int = 0
events: list[str] = field(default_factory=list)
def record(self, label: str, units: int) -> None:
self.total_units += units
self.events.append(f'{label}:{units}')

15
src/dialogLaunchers.py Normal file
View File

@@ -0,0 +1,15 @@
from __future__ import annotations
from dataclasses import dataclass
@dataclass(frozen=True)
class DialogLauncher:
name: str
description: str
DEFAULT_DIALOGS = (
DialogLauncher('summary', 'Launch the Markdown summary view'),
DialogLauncher('parity_audit', 'Launch the parity audit view'),
)

View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `entrypoints` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'entrypoints.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

17
src/history.py Normal file
View File

@@ -0,0 +1,17 @@
from __future__ import annotations
from dataclasses import dataclass, field
@dataclass(frozen=True)
class HistoryEvent:
title: str
detail: str
@dataclass
class HistoryLog:
events: list[HistoryEvent] = field(default_factory=list)
def add(self, title: str, detail: str) -> None:
self.events.append(HistoryEvent(title=title, detail=detail))

16
src/hooks/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `hooks` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'hooks.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

6
src/ink.py Normal file
View File

@@ -0,0 +1,6 @@
from __future__ import annotations
def render_markdown_panel(text: str) -> str:
border = '=' * 40
return f"{border}\n{text}\n{border}"

View File

@@ -0,0 +1,5 @@
from __future__ import annotations
def bulletize(items: list[str]) -> str:
return '\n'.join(f'- {item}' for item in items)

View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `keybindings` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'keybindings.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

87
src/main.py Normal file
View File

@@ -0,0 +1,87 @@
from __future__ import annotations
import argparse
from .commands import get_command, render_command_index
from .parity_audit import run_parity_audit
from .port_manifest import build_port_manifest
from .query_engine import QueryEnginePort
from .runtime import PortRuntime
from .tools import get_tool, render_tool_index
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description='Python porting workspace for the Claude Code rewrite effort')
subparsers = parser.add_subparsers(dest='command', required=True)
subparsers.add_parser('summary', help='render a Markdown summary of the Python porting workspace')
subparsers.add_parser('manifest', help='print the current Python workspace manifest')
subparsers.add_parser('parity-audit', help='compare the Python workspace against the local ignored TypeScript archive when available')
list_parser = subparsers.add_parser('subsystems', help='list the current Python modules in the workspace')
list_parser.add_argument('--limit', type=int, default=32)
commands_parser = subparsers.add_parser('commands', help='list mirrored command entries from the archived snapshot')
commands_parser.add_argument('--limit', type=int, default=20)
commands_parser.add_argument('--query')
tools_parser = subparsers.add_parser('tools', help='list mirrored tool entries from the archived snapshot')
tools_parser.add_argument('--limit', type=int, default=20)
tools_parser.add_argument('--query')
route_parser = subparsers.add_parser('route', help='route a prompt across mirrored command/tool inventories')
route_parser.add_argument('prompt')
route_parser.add_argument('--limit', type=int, default=5)
show_command = subparsers.add_parser('show-command', help='show one mirrored command entry by exact name')
show_command.add_argument('name')
show_tool = subparsers.add_parser('show-tool', help='show one mirrored tool entry by exact name')
show_tool.add_argument('name')
return parser
def main(argv: list[str] | None = None) -> int:
parser = build_parser()
args = parser.parse_args(argv)
manifest = build_port_manifest()
if args.command == 'summary':
print(QueryEnginePort(manifest).render_summary())
return 0
if args.command == 'manifest':
print(manifest.to_markdown())
return 0
if args.command == 'parity-audit':
print(run_parity_audit().to_markdown())
return 0
if args.command == 'subsystems':
for subsystem in manifest.top_level_modules[: args.limit]:
print(f'{subsystem.name}\t{subsystem.file_count}\t{subsystem.notes}')
return 0
if args.command == 'commands':
print(render_command_index(limit=args.limit, query=args.query))
return 0
if args.command == 'tools':
print(render_tool_index(limit=args.limit, query=args.query))
return 0
if args.command == 'route':
matches = PortRuntime().route_prompt(args.prompt, limit=args.limit)
if not matches:
print('No mirrored command/tool matches found.')
return 0
for match in matches:
print(f'{match.kind}\t{match.name}\t{match.score}\t{match.source_hint}')
return 0
if args.command == 'show-command':
module = get_command(args.name)
if module is None:
print(f'Command not found: {args.name}')
return 1
print(f'{module.name}\n{module.source_hint}\n{module.responsibility}')
return 0
if args.command == 'show-tool':
module = get_tool(args.name)
if module is None:
print(f'Tool not found: {args.name}')
return 1
print(f'{module.name}\n{module.source_hint}\n{module.responsibility}')
return 0
parser.error(f'unknown command: {args.command}')
return 2
if __name__ == '__main__':
raise SystemExit(main())

16
src/memdir/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `memdir` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'memdir.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `migrations` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'migrations.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

31
src/models.py Normal file
View File

@@ -0,0 +1,31 @@
from __future__ import annotations
from dataclasses import dataclass, field
@dataclass(frozen=True)
class Subsystem:
name: str
path: str
file_count: int
notes: str
@dataclass(frozen=True)
class PortingModule:
name: str
responsibility: str
source_hint: str
status: str = 'planned'
@dataclass
class PortingBacklog:
title: str
modules: list[PortingModule] = field(default_factory=list)
def summary_lines(self) -> list[str]:
return [
f'- {module.name} [{module.status}] — {module.responsibility} (from {module.source_hint})'
for module in self.modules
]

16
src/moreright/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `moreright` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'moreright.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/native_ts/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `native-ts` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'native_ts.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `outputStyles` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'outputStyles.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

138
src/parity_audit.py Normal file
View File

@@ -0,0 +1,138 @@
from __future__ import annotations
import json
from dataclasses import dataclass
from pathlib import Path
ARCHIVE_ROOT = Path(__file__).resolve().parent.parent / 'archive' / 'claude_code_ts_snapshot' / 'src'
CURRENT_ROOT = Path(__file__).resolve().parent
REFERENCE_SURFACE_PATH = CURRENT_ROOT / 'reference_data' / 'archive_surface_snapshot.json'
COMMAND_SNAPSHOT_PATH = CURRENT_ROOT / 'reference_data' / 'commands_snapshot.json'
TOOL_SNAPSHOT_PATH = CURRENT_ROOT / 'reference_data' / 'tools_snapshot.json'
ARCHIVE_ROOT_FILES = {
'QueryEngine.ts': 'QueryEngine.py',
'Task.ts': 'task.py',
'Tool.ts': 'Tool.py',
'commands.ts': 'commands.py',
'context.ts': 'context.py',
'cost-tracker.ts': 'cost_tracker.py',
'costHook.ts': 'costHook.py',
'dialogLaunchers.tsx': 'dialogLaunchers.py',
'history.ts': 'history.py',
'ink.ts': 'ink.py',
'interactiveHelpers.tsx': 'interactiveHelpers.py',
'main.tsx': 'main.py',
'projectOnboardingState.ts': 'projectOnboardingState.py',
'query.ts': 'query.py',
'replLauncher.tsx': 'replLauncher.py',
'setup.ts': 'setup.py',
'tasks.ts': 'tasks.py',
'tools.ts': 'tools.py',
}
ARCHIVE_DIR_MAPPINGS = {
'assistant': 'assistant',
'bootstrap': 'bootstrap',
'bridge': 'bridge',
'buddy': 'buddy',
'cli': 'cli',
'commands': 'commands.py',
'components': 'components',
'constants': 'constants',
'context': 'context.py',
'coordinator': 'coordinator',
'entrypoints': 'entrypoints',
'hooks': 'hooks',
'ink': 'ink.py',
'keybindings': 'keybindings',
'memdir': 'memdir',
'migrations': 'migrations',
'moreright': 'moreright',
'native-ts': 'native_ts',
'outputStyles': 'outputStyles',
'plugins': 'plugins',
'query': 'query.py',
'remote': 'remote',
'schemas': 'schemas',
'screens': 'screens',
'server': 'server',
'services': 'services',
'skills': 'skills',
'state': 'state',
'tasks': 'tasks.py',
'tools': 'tools.py',
'types': 'types',
'upstreamproxy': 'upstreamproxy',
'utils': 'utils',
'vim': 'vim',
'voice': 'voice',
}
@dataclass(frozen=True)
class ParityAuditResult:
archive_present: bool
root_file_coverage: tuple[int, int]
directory_coverage: tuple[int, int]
total_file_ratio: tuple[int, int]
command_entry_ratio: tuple[int, int]
tool_entry_ratio: tuple[int, int]
missing_root_targets: tuple[str, ...]
missing_directory_targets: tuple[str, ...]
def to_markdown(self) -> str:
lines = ['# Parity Audit']
if not self.archive_present:
lines.append('Local archive unavailable; parity audit cannot compare against the original snapshot.')
return '\n'.join(lines)
lines.extend([
'',
f'Root file coverage: **{self.root_file_coverage[0]}/{self.root_file_coverage[1]}**',
f'Directory coverage: **{self.directory_coverage[0]}/{self.directory_coverage[1]}**',
f'Total Python files vs archived TS-like files: **{self.total_file_ratio[0]}/{self.total_file_ratio[1]}**',
f'Command entry coverage: **{self.command_entry_ratio[0]}/{self.command_entry_ratio[1]}**',
f'Tool entry coverage: **{self.tool_entry_ratio[0]}/{self.tool_entry_ratio[1]}**',
'',
'Missing root targets:',
])
if self.missing_root_targets:
lines.extend(f'- {item}' for item in self.missing_root_targets)
else:
lines.append('- none')
lines.extend(['', 'Missing directory targets:'])
if self.missing_directory_targets:
lines.extend(f'- {item}' for item in self.missing_directory_targets)
else:
lines.append('- none')
return '\n'.join(lines)
def _reference_surface() -> dict[str, object]:
return json.loads(REFERENCE_SURFACE_PATH.read_text())
def _snapshot_count(path: Path) -> int:
return len(json.loads(path.read_text()))
def run_parity_audit() -> ParityAuditResult:
current_entries = {path.name for path in CURRENT_ROOT.iterdir()}
root_hits = [target for target in ARCHIVE_ROOT_FILES.values() if target in current_entries]
dir_hits = [target for target in ARCHIVE_DIR_MAPPINGS.values() if target in current_entries]
missing_roots = tuple(target for target in ARCHIVE_ROOT_FILES.values() if target not in current_entries)
missing_dirs = tuple(target for target in ARCHIVE_DIR_MAPPINGS.values() if target not in current_entries)
current_python_files = sum(1 for path in CURRENT_ROOT.rglob('*.py') if path.is_file())
reference = _reference_surface()
return ParityAuditResult(
archive_present=ARCHIVE_ROOT.exists(),
root_file_coverage=(len(root_hits), len(ARCHIVE_ROOT_FILES)),
directory_coverage=(len(dir_hits), len(ARCHIVE_DIR_MAPPINGS)),
total_file_ratio=(current_python_files, int(reference['total_ts_like_files'])),
command_entry_ratio=(_snapshot_count(COMMAND_SNAPSHOT_PATH), int(reference['command_entry_count'])),
tool_entry_ratio=(_snapshot_count(TOOL_SNAPSHOT_PATH), int(reference['tool_entry_count'])),
missing_root_targets=missing_roots,
missing_directory_targets=missing_dirs,
)

16
src/plugins/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `plugins` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'plugins.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

52
src/port_manifest.py Normal file
View File

@@ -0,0 +1,52 @@
from __future__ import annotations
from collections import Counter
from dataclasses import dataclass
from pathlib import Path
from .models import Subsystem
DEFAULT_SRC_ROOT = Path(__file__).resolve().parent
@dataclass(frozen=True)
class PortManifest:
src_root: Path
total_python_files: int
top_level_modules: tuple[Subsystem, ...]
def to_markdown(self) -> str:
lines = [
f'Port root: `{self.src_root}`',
f'Total Python files: **{self.total_python_files}**',
'',
'Top-level Python modules:',
]
for module in self.top_level_modules:
lines.append(f'- `{module.name}` ({module.file_count} files) — {module.notes}')
return '\n'.join(lines)
def build_port_manifest(src_root: Path | None = None) -> PortManifest:
root = src_root or DEFAULT_SRC_ROOT
files = [path for path in root.rglob('*.py') if path.is_file()]
counter = Counter(
path.relative_to(root).parts[0] if len(path.relative_to(root).parts) > 1 else path.name
for path in files
if path.name != '__pycache__'
)
notes = {
'__init__.py': 'package export surface',
'main.py': 'CLI entrypoint',
'port_manifest.py': 'workspace manifest generation',
'query_engine.py': 'port orchestration summary layer',
'commands.py': 'command backlog metadata',
'tools.py': 'tool backlog metadata',
'models.py': 'shared dataclasses',
'task.py': 'task-level planning structures',
}
modules = tuple(
Subsystem(name=name, path=f'src/{name}', file_count=count, notes=notes.get(name, 'Python port support module'))
for name, count in counter.most_common()
)
return PortManifest(src_root=root, total_python_files=len(files), top_level_modules=modules)

View File

@@ -0,0 +1,10 @@
from __future__ import annotations
from dataclasses import dataclass
@dataclass
class ProjectOnboardingState:
has_readme: bool
has_tests: bool
python_first: bool = True

13
src/query.py Normal file
View File

@@ -0,0 +1,13 @@
from __future__ import annotations
from dataclasses import dataclass
@dataclass(frozen=True)
class QueryRequest:
prompt: str
@dataclass(frozen=True)
class QueryResponse:
text: str

32
src/query_engine.py Normal file
View File

@@ -0,0 +1,32 @@
from __future__ import annotations
from dataclasses import dataclass
from .commands import PORTED_COMMANDS, build_command_backlog
from .port_manifest import PortManifest, build_port_manifest
from .tools import PORTED_TOOLS, build_tool_backlog
@dataclass
class QueryEnginePort:
manifest: PortManifest
@classmethod
def from_workspace(cls) -> 'QueryEnginePort':
return cls(manifest=build_port_manifest())
def render_summary(self) -> str:
command_backlog = build_command_backlog()
tool_backlog = build_tool_backlog()
sections = [
'# Python Porting Workspace Summary',
'',
self.manifest.to_markdown(),
'',
f'{command_backlog.title}: {len(PORTED_COMMANDS)} mirrored entries',
*command_backlog.summary_lines()[:10],
'',
f'{tool_backlog.title}: {len(PORTED_TOOLS)} mirrored entries',
*tool_backlog.summary_lines()[:10],
]
return '\n'.join(sections)

View File

@@ -0,0 +1 @@
"""Tracked snapshot metadata extracted from the local TypeScript archive."""

View File

@@ -0,0 +1,63 @@
{
"archive_root": "archive/claude_code_ts_snapshot/src",
"root_files": [
"QueryEngine.ts",
"Task.ts",
"Tool.ts",
"commands.ts",
"context.ts",
"cost-tracker.ts",
"costHook.ts",
"dialogLaunchers.tsx",
"history.ts",
"ink.ts",
"interactiveHelpers.tsx",
"main.tsx",
"projectOnboardingState.ts",
"query.ts",
"replLauncher.tsx",
"setup.ts",
"tasks.ts",
"tools.ts"
],
"root_dirs": [
"assistant",
"bootstrap",
"bridge",
"buddy",
"cli",
"commands",
"components",
"constants",
"context",
"coordinator",
"entrypoints",
"hooks",
"ink",
"keybindings",
"memdir",
"migrations",
"moreright",
"native-ts",
"outputStyles",
"plugins",
"query",
"remote",
"schemas",
"screens",
"server",
"services",
"skills",
"state",
"tasks",
"tools",
"types",
"upstreamproxy",
"utils",
"vim",
"voice"
],
"total_ts_like_files": 1902,
"command_entry_count": 207,
"tool_entry_count": 184
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
{
"archive_name": "assistant",
"package_name": "assistant",
"module_count": 1,
"sample_files": [
"assistant/sessionHistory.ts"
]
}

View File

@@ -0,0 +1,8 @@
{
"archive_name": "bootstrap",
"package_name": "bootstrap",
"module_count": 1,
"sample_files": [
"bootstrap/state.ts"
]
}

View File

@@ -0,0 +1,32 @@
{
"archive_name": "bridge",
"package_name": "bridge",
"module_count": 31,
"sample_files": [
"bridge/bridgeApi.ts",
"bridge/bridgeConfig.ts",
"bridge/bridgeDebug.ts",
"bridge/bridgeEnabled.ts",
"bridge/bridgeMain.ts",
"bridge/bridgeMessaging.ts",
"bridge/bridgePermissionCallbacks.ts",
"bridge/bridgePointer.ts",
"bridge/bridgeStatusUtil.ts",
"bridge/bridgeUI.ts",
"bridge/capacityWake.ts",
"bridge/codeSessionApi.ts",
"bridge/createSession.ts",
"bridge/debugUtils.ts",
"bridge/envLessBridgeConfig.ts",
"bridge/flushGate.ts",
"bridge/inboundAttachments.ts",
"bridge/inboundMessages.ts",
"bridge/initReplBridge.ts",
"bridge/jwtUtils.ts",
"bridge/pollConfig.ts",
"bridge/pollConfigDefaults.ts",
"bridge/remoteBridgeCore.ts",
"bridge/replBridge.ts",
"bridge/replBridgeHandle.ts"
]
}

View File

@@ -0,0 +1,13 @@
{
"archive_name": "buddy",
"package_name": "buddy",
"module_count": 6,
"sample_files": [
"buddy/CompanionSprite.tsx",
"buddy/companion.ts",
"buddy/prompt.ts",
"buddy/sprites.ts",
"buddy/types.ts",
"buddy/useBuddyNotification.tsx"
]
}

View File

@@ -0,0 +1,26 @@
{
"archive_name": "cli",
"package_name": "cli",
"module_count": 19,
"sample_files": [
"cli/exit.ts",
"cli/handlers/agents.ts",
"cli/handlers/auth.ts",
"cli/handlers/autoMode.ts",
"cli/handlers/mcp.tsx",
"cli/handlers/plugins.ts",
"cli/handlers/util.tsx",
"cli/ndjsonSafeStringify.ts",
"cli/print.ts",
"cli/remoteIO.ts",
"cli/structuredIO.ts",
"cli/transports/HybridTransport.ts",
"cli/transports/SSETransport.ts",
"cli/transports/SerialBatchEventUploader.ts",
"cli/transports/WebSocketTransport.ts",
"cli/transports/WorkerStateUploader.ts",
"cli/transports/ccrClient.ts",
"cli/transports/transportUtils.ts",
"cli/update.ts"
]
}

View File

@@ -0,0 +1,32 @@
{
"archive_name": "components",
"package_name": "components",
"module_count": 389,
"sample_files": [
"components/AgentProgressLine.tsx",
"components/App.tsx",
"components/ApproveApiKey.tsx",
"components/AutoModeOptInDialog.tsx",
"components/AutoUpdater.tsx",
"components/AutoUpdaterWrapper.tsx",
"components/AwsAuthStatusBox.tsx",
"components/BaseTextInput.tsx",
"components/BashModeProgress.tsx",
"components/BridgeDialog.tsx",
"components/BypassPermissionsModeDialog.tsx",
"components/ChannelDowngradeDialog.tsx",
"components/ClaudeCodeHint/PluginHintMenu.tsx",
"components/ClaudeInChromeOnboarding.tsx",
"components/ClaudeMdExternalIncludesDialog.tsx",
"components/ClickableImageRef.tsx",
"components/CompactSummary.tsx",
"components/ConfigurableShortcutHint.tsx",
"components/ConsoleOAuthFlow.tsx",
"components/ContextSuggestions.tsx",
"components/ContextVisualization.tsx",
"components/CoordinatorAgentStatus.tsx",
"components/CostThresholdDialog.tsx",
"components/CtrlOToExpand.tsx",
"components/CustomSelect/SelectMulti.tsx"
]
}

View File

@@ -0,0 +1,28 @@
{
"archive_name": "constants",
"package_name": "constants",
"module_count": 21,
"sample_files": [
"constants/apiLimits.ts",
"constants/betas.ts",
"constants/common.ts",
"constants/cyberRiskInstruction.ts",
"constants/errorIds.ts",
"constants/figures.ts",
"constants/files.ts",
"constants/github-app.ts",
"constants/keys.ts",
"constants/messages.ts",
"constants/oauth.ts",
"constants/outputStyles.ts",
"constants/product.ts",
"constants/prompts.ts",
"constants/spinnerVerbs.ts",
"constants/system.ts",
"constants/systemPromptSections.ts",
"constants/toolLimits.ts",
"constants/tools.ts",
"constants/turnCompletionVerbs.ts",
"constants/xml.ts"
]
}

View File

@@ -0,0 +1,8 @@
{
"archive_name": "coordinator",
"package_name": "coordinator",
"module_count": 1,
"sample_files": [
"coordinator/coordinatorMode.ts"
]
}

View File

@@ -0,0 +1,15 @@
{
"archive_name": "entrypoints",
"package_name": "entrypoints",
"module_count": 8,
"sample_files": [
"entrypoints/agentSdkTypes.ts",
"entrypoints/cli.tsx",
"entrypoints/init.ts",
"entrypoints/mcp.ts",
"entrypoints/sandboxTypes.ts",
"entrypoints/sdk/controlSchemas.ts",
"entrypoints/sdk/coreSchemas.ts",
"entrypoints/sdk/coreTypes.ts"
]
}

View File

@@ -0,0 +1,32 @@
{
"archive_name": "hooks",
"package_name": "hooks",
"module_count": 104,
"sample_files": [
"hooks/fileSuggestions.ts",
"hooks/notifs/useAutoModeUnavailableNotification.ts",
"hooks/notifs/useCanSwitchToExistingSubscription.tsx",
"hooks/notifs/useDeprecationWarningNotification.tsx",
"hooks/notifs/useFastModeNotification.tsx",
"hooks/notifs/useIDEStatusIndicator.tsx",
"hooks/notifs/useInstallMessages.tsx",
"hooks/notifs/useLspInitializationNotification.tsx",
"hooks/notifs/useMcpConnectivityStatus.tsx",
"hooks/notifs/useModelMigrationNotifications.tsx",
"hooks/notifs/useNpmDeprecationNotification.tsx",
"hooks/notifs/usePluginAutoupdateNotification.tsx",
"hooks/notifs/usePluginInstallationStatus.tsx",
"hooks/notifs/useRateLimitWarningNotification.tsx",
"hooks/notifs/useSettingsErrors.tsx",
"hooks/notifs/useStartupNotification.ts",
"hooks/notifs/useTeammateShutdownNotification.ts",
"hooks/renderPlaceholder.ts",
"hooks/toolPermission/PermissionContext.ts",
"hooks/toolPermission/handlers/coordinatorHandler.ts",
"hooks/toolPermission/handlers/interactiveHandler.ts",
"hooks/toolPermission/handlers/swarmWorkerHandler.ts",
"hooks/toolPermission/permissionLogging.ts",
"hooks/unifiedSuggestions.ts",
"hooks/useAfterFirstRender.ts"
]
}

View File

@@ -0,0 +1,21 @@
{
"archive_name": "keybindings",
"package_name": "keybindings",
"module_count": 14,
"sample_files": [
"keybindings/KeybindingContext.tsx",
"keybindings/KeybindingProviderSetup.tsx",
"keybindings/defaultBindings.ts",
"keybindings/loadUserBindings.ts",
"keybindings/match.ts",
"keybindings/parser.ts",
"keybindings/reservedShortcuts.ts",
"keybindings/resolver.ts",
"keybindings/schema.ts",
"keybindings/shortcutFormat.ts",
"keybindings/template.ts",
"keybindings/useKeybinding.ts",
"keybindings/useShortcutDisplay.ts",
"keybindings/validate.ts"
]
}

View File

@@ -0,0 +1,15 @@
{
"archive_name": "memdir",
"package_name": "memdir",
"module_count": 8,
"sample_files": [
"memdir/findRelevantMemories.ts",
"memdir/memdir.ts",
"memdir/memoryAge.ts",
"memdir/memoryScan.ts",
"memdir/memoryTypes.ts",
"memdir/paths.ts",
"memdir/teamMemPaths.ts",
"memdir/teamMemPrompts.ts"
]
}

View File

@@ -0,0 +1,18 @@
{
"archive_name": "migrations",
"package_name": "migrations",
"module_count": 11,
"sample_files": [
"migrations/migrateAutoUpdatesToSettings.ts",
"migrations/migrateBypassPermissionsAcceptedToSettings.ts",
"migrations/migrateEnableAllProjectMcpServersToSettings.ts",
"migrations/migrateFennecToOpus.ts",
"migrations/migrateLegacyOpusToCurrent.ts",
"migrations/migrateOpusToOpus1m.ts",
"migrations/migrateReplBridgeEnabledToRemoteControlAtStartup.ts",
"migrations/migrateSonnet1mToSonnet45.ts",
"migrations/migrateSonnet45ToSonnet46.ts",
"migrations/resetAutoModeOptInForDefaultOffer.ts",
"migrations/resetProToOpusDefault.ts"
]
}

View File

@@ -0,0 +1,8 @@
{
"archive_name": "moreright",
"package_name": "moreright",
"module_count": 1,
"sample_files": [
"moreright/useMoreRight.tsx"
]
}

View File

@@ -0,0 +1,11 @@
{
"archive_name": "native-ts",
"package_name": "native_ts",
"module_count": 4,
"sample_files": [
"native-ts/color-diff/index.ts",
"native-ts/file-index/index.ts",
"native-ts/yoga-layout/enums.ts",
"native-ts/yoga-layout/index.ts"
]
}

View File

@@ -0,0 +1,8 @@
{
"archive_name": "outputStyles",
"package_name": "outputStyles",
"module_count": 1,
"sample_files": [
"outputStyles/loadOutputStylesDir.ts"
]
}

View File

@@ -0,0 +1,9 @@
{
"archive_name": "plugins",
"package_name": "plugins",
"module_count": 2,
"sample_files": [
"plugins/builtinPlugins.ts",
"plugins/bundled/index.ts"
]
}

View File

@@ -0,0 +1,11 @@
{
"archive_name": "remote",
"package_name": "remote",
"module_count": 4,
"sample_files": [
"remote/RemoteSessionManager.ts",
"remote/SessionsWebSocket.ts",
"remote/remotePermissionBridge.ts",
"remote/sdkMessageAdapter.ts"
]
}

View File

@@ -0,0 +1,8 @@
{
"archive_name": "schemas",
"package_name": "schemas",
"module_count": 1,
"sample_files": [
"schemas/hooks.ts"
]
}

View File

@@ -0,0 +1,10 @@
{
"archive_name": "screens",
"package_name": "screens",
"module_count": 3,
"sample_files": [
"screens/Doctor.tsx",
"screens/REPL.tsx",
"screens/ResumeConversation.tsx"
]
}

View File

@@ -0,0 +1,10 @@
{
"archive_name": "server",
"package_name": "server",
"module_count": 3,
"sample_files": [
"server/createDirectConnectSession.ts",
"server/directConnectManager.ts",
"server/types.ts"
]
}

View File

@@ -0,0 +1,32 @@
{
"archive_name": "services",
"package_name": "services",
"module_count": 130,
"sample_files": [
"services/AgentSummary/agentSummary.ts",
"services/MagicDocs/magicDocs.ts",
"services/MagicDocs/prompts.ts",
"services/PromptSuggestion/promptSuggestion.ts",
"services/PromptSuggestion/speculation.ts",
"services/SessionMemory/prompts.ts",
"services/SessionMemory/sessionMemory.ts",
"services/SessionMemory/sessionMemoryUtils.ts",
"services/analytics/config.ts",
"services/analytics/datadog.ts",
"services/analytics/firstPartyEventLogger.ts",
"services/analytics/firstPartyEventLoggingExporter.ts",
"services/analytics/growthbook.ts",
"services/analytics/index.ts",
"services/analytics/metadata.ts",
"services/analytics/sink.ts",
"services/analytics/sinkKillswitch.ts",
"services/api/adminRequests.ts",
"services/api/bootstrap.ts",
"services/api/claude.ts",
"services/api/client.ts",
"services/api/dumpPrompts.ts",
"services/api/emptyUsage.ts",
"services/api/errorUtils.ts",
"services/api/errors.ts"
]
}

View File

@@ -0,0 +1,27 @@
{
"archive_name": "skills",
"package_name": "skills",
"module_count": 20,
"sample_files": [
"skills/bundled/batch.ts",
"skills/bundled/claudeApi.ts",
"skills/bundled/claudeApiContent.ts",
"skills/bundled/claudeInChrome.ts",
"skills/bundled/debug.ts",
"skills/bundled/index.ts",
"skills/bundled/keybindings.ts",
"skills/bundled/loop.ts",
"skills/bundled/loremIpsum.ts",
"skills/bundled/remember.ts",
"skills/bundled/scheduleRemoteAgents.ts",
"skills/bundled/simplify.ts",
"skills/bundled/skillify.ts",
"skills/bundled/stuck.ts",
"skills/bundled/updateConfig.ts",
"skills/bundled/verify.ts",
"skills/bundled/verifyContent.ts",
"skills/bundledSkills.ts",
"skills/loadSkillsDir.ts",
"skills/mcpSkillBuilders.ts"
]
}

View File

@@ -0,0 +1,13 @@
{
"archive_name": "state",
"package_name": "state",
"module_count": 6,
"sample_files": [
"state/AppState.tsx",
"state/AppStateStore.ts",
"state/onChangeAppState.ts",
"state/selectors.ts",
"state/store.ts",
"state/teammateViewHelpers.ts"
]
}

View File

@@ -0,0 +1,18 @@
{
"archive_name": "types",
"package_name": "types",
"module_count": 11,
"sample_files": [
"types/command.ts",
"types/generated/events_mono/claude_code/v1/claude_code_internal_event.ts",
"types/generated/events_mono/common/v1/auth.ts",
"types/generated/events_mono/growthbook/v1/growthbook_experiment_event.ts",
"types/generated/google/protobuf/timestamp.ts",
"types/hooks.ts",
"types/ids.ts",
"types/logs.ts",
"types/permissions.ts",
"types/plugin.ts",
"types/textInputTypes.ts"
]
}

View File

@@ -0,0 +1,9 @@
{
"archive_name": "upstreamproxy",
"package_name": "upstreamproxy",
"module_count": 2,
"sample_files": [
"upstreamproxy/relay.ts",
"upstreamproxy/upstreamproxy.ts"
]
}

View File

@@ -0,0 +1,32 @@
{
"archive_name": "utils",
"package_name": "utils",
"module_count": 564,
"sample_files": [
"utils/CircularBuffer.ts",
"utils/Cursor.ts",
"utils/QueryGuard.ts",
"utils/Shell.ts",
"utils/ShellCommand.ts",
"utils/abortController.ts",
"utils/activityManager.ts",
"utils/advisor.ts",
"utils/agentContext.ts",
"utils/agentId.ts",
"utils/agentSwarmsEnabled.ts",
"utils/agenticSessionSearch.ts",
"utils/analyzeContext.ts",
"utils/ansiToPng.ts",
"utils/ansiToSvg.ts",
"utils/api.ts",
"utils/apiPreconnect.ts",
"utils/appleTerminalBackup.ts",
"utils/argumentSubstitution.ts",
"utils/array.ts",
"utils/asciicast.ts",
"utils/attachments.ts",
"utils/attribution.ts",
"utils/auth.ts",
"utils/authFileDescriptor.ts"
]
}

View File

@@ -0,0 +1,12 @@
{
"archive_name": "vim",
"package_name": "vim",
"module_count": 5,
"sample_files": [
"vim/motions.ts",
"vim/operators.ts",
"vim/textObjects.ts",
"vim/transitions.ts",
"vim/types.ts"
]
}

View File

@@ -0,0 +1,8 @@
{
"archive_name": "voice",
"package_name": "voice",
"module_count": 1,
"sample_files": [
"voice/voiceModeEnabled.ts"
]
}

View File

@@ -0,0 +1,922 @@
[
{
"name": "AgentTool",
"source_hint": "tools/AgentTool/AgentTool.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/AgentTool.tsx"
},
{
"name": "UI",
"source_hint": "tools/AgentTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/UI.tsx"
},
{
"name": "agentColorManager",
"source_hint": "tools/AgentTool/agentColorManager.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/agentColorManager.ts"
},
{
"name": "agentDisplay",
"source_hint": "tools/AgentTool/agentDisplay.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/agentDisplay.ts"
},
{
"name": "agentMemory",
"source_hint": "tools/AgentTool/agentMemory.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/agentMemory.ts"
},
{
"name": "agentMemorySnapshot",
"source_hint": "tools/AgentTool/agentMemorySnapshot.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/agentMemorySnapshot.ts"
},
{
"name": "agentToolUtils",
"source_hint": "tools/AgentTool/agentToolUtils.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/agentToolUtils.ts"
},
{
"name": "claudeCodeGuideAgent",
"source_hint": "tools/AgentTool/built-in/claudeCodeGuideAgent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/built-in/claudeCodeGuideAgent.ts"
},
{
"name": "exploreAgent",
"source_hint": "tools/AgentTool/built-in/exploreAgent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/built-in/exploreAgent.ts"
},
{
"name": "generalPurposeAgent",
"source_hint": "tools/AgentTool/built-in/generalPurposeAgent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/built-in/generalPurposeAgent.ts"
},
{
"name": "planAgent",
"source_hint": "tools/AgentTool/built-in/planAgent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/built-in/planAgent.ts"
},
{
"name": "statuslineSetup",
"source_hint": "tools/AgentTool/built-in/statuslineSetup.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/built-in/statuslineSetup.ts"
},
{
"name": "verificationAgent",
"source_hint": "tools/AgentTool/built-in/verificationAgent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/built-in/verificationAgent.ts"
},
{
"name": "builtInAgents",
"source_hint": "tools/AgentTool/builtInAgents.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/builtInAgents.ts"
},
{
"name": "constants",
"source_hint": "tools/AgentTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/constants.ts"
},
{
"name": "forkSubagent",
"source_hint": "tools/AgentTool/forkSubagent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/forkSubagent.ts"
},
{
"name": "loadAgentsDir",
"source_hint": "tools/AgentTool/loadAgentsDir.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/loadAgentsDir.ts"
},
{
"name": "prompt",
"source_hint": "tools/AgentTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/prompt.ts"
},
{
"name": "resumeAgent",
"source_hint": "tools/AgentTool/resumeAgent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/resumeAgent.ts"
},
{
"name": "runAgent",
"source_hint": "tools/AgentTool/runAgent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AgentTool/runAgent.ts"
},
{
"name": "AskUserQuestionTool",
"source_hint": "tools/AskUserQuestionTool/AskUserQuestionTool.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AskUserQuestionTool/AskUserQuestionTool.tsx"
},
{
"name": "prompt",
"source_hint": "tools/AskUserQuestionTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/AskUserQuestionTool/prompt.ts"
},
{
"name": "BashTool",
"source_hint": "tools/BashTool/BashTool.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/BashTool.tsx"
},
{
"name": "BashToolResultMessage",
"source_hint": "tools/BashTool/BashToolResultMessage.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/BashToolResultMessage.tsx"
},
{
"name": "UI",
"source_hint": "tools/BashTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/UI.tsx"
},
{
"name": "bashCommandHelpers",
"source_hint": "tools/BashTool/bashCommandHelpers.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/bashCommandHelpers.ts"
},
{
"name": "bashPermissions",
"source_hint": "tools/BashTool/bashPermissions.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/bashPermissions.ts"
},
{
"name": "bashSecurity",
"source_hint": "tools/BashTool/bashSecurity.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/bashSecurity.ts"
},
{
"name": "commandSemantics",
"source_hint": "tools/BashTool/commandSemantics.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/commandSemantics.ts"
},
{
"name": "commentLabel",
"source_hint": "tools/BashTool/commentLabel.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/commentLabel.ts"
},
{
"name": "destructiveCommandWarning",
"source_hint": "tools/BashTool/destructiveCommandWarning.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/destructiveCommandWarning.ts"
},
{
"name": "modeValidation",
"source_hint": "tools/BashTool/modeValidation.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/modeValidation.ts"
},
{
"name": "pathValidation",
"source_hint": "tools/BashTool/pathValidation.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/pathValidation.ts"
},
{
"name": "prompt",
"source_hint": "tools/BashTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/prompt.ts"
},
{
"name": "readOnlyValidation",
"source_hint": "tools/BashTool/readOnlyValidation.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/readOnlyValidation.ts"
},
{
"name": "sedEditParser",
"source_hint": "tools/BashTool/sedEditParser.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/sedEditParser.ts"
},
{
"name": "sedValidation",
"source_hint": "tools/BashTool/sedValidation.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/sedValidation.ts"
},
{
"name": "shouldUseSandbox",
"source_hint": "tools/BashTool/shouldUseSandbox.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/shouldUseSandbox.ts"
},
{
"name": "toolName",
"source_hint": "tools/BashTool/toolName.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/toolName.ts"
},
{
"name": "utils",
"source_hint": "tools/BashTool/utils.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BashTool/utils.ts"
},
{
"name": "BriefTool",
"source_hint": "tools/BriefTool/BriefTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BriefTool/BriefTool.ts"
},
{
"name": "UI",
"source_hint": "tools/BriefTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BriefTool/UI.tsx"
},
{
"name": "attachments",
"source_hint": "tools/BriefTool/attachments.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BriefTool/attachments.ts"
},
{
"name": "prompt",
"source_hint": "tools/BriefTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BriefTool/prompt.ts"
},
{
"name": "upload",
"source_hint": "tools/BriefTool/upload.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/BriefTool/upload.ts"
},
{
"name": "ConfigTool",
"source_hint": "tools/ConfigTool/ConfigTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ConfigTool/ConfigTool.ts"
},
{
"name": "UI",
"source_hint": "tools/ConfigTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ConfigTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/ConfigTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ConfigTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/ConfigTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ConfigTool/prompt.ts"
},
{
"name": "supportedSettings",
"source_hint": "tools/ConfigTool/supportedSettings.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ConfigTool/supportedSettings.ts"
},
{
"name": "EnterPlanModeTool",
"source_hint": "tools/EnterPlanModeTool/EnterPlanModeTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/EnterPlanModeTool/EnterPlanModeTool.ts"
},
{
"name": "UI",
"source_hint": "tools/EnterPlanModeTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/EnterPlanModeTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/EnterPlanModeTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/EnterPlanModeTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/EnterPlanModeTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/EnterPlanModeTool/prompt.ts"
},
{
"name": "EnterWorktreeTool",
"source_hint": "tools/EnterWorktreeTool/EnterWorktreeTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/EnterWorktreeTool/EnterWorktreeTool.ts"
},
{
"name": "UI",
"source_hint": "tools/EnterWorktreeTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/EnterWorktreeTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/EnterWorktreeTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/EnterWorktreeTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/EnterWorktreeTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/EnterWorktreeTool/prompt.ts"
},
{
"name": "ExitPlanModeV2Tool",
"source_hint": "tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts"
},
{
"name": "UI",
"source_hint": "tools/ExitPlanModeTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ExitPlanModeTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/ExitPlanModeTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ExitPlanModeTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/ExitPlanModeTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ExitPlanModeTool/prompt.ts"
},
{
"name": "ExitWorktreeTool",
"source_hint": "tools/ExitWorktreeTool/ExitWorktreeTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ExitWorktreeTool/ExitWorktreeTool.ts"
},
{
"name": "UI",
"source_hint": "tools/ExitWorktreeTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ExitWorktreeTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/ExitWorktreeTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ExitWorktreeTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/ExitWorktreeTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ExitWorktreeTool/prompt.ts"
},
{
"name": "FileEditTool",
"source_hint": "tools/FileEditTool/FileEditTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileEditTool/FileEditTool.ts"
},
{
"name": "UI",
"source_hint": "tools/FileEditTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileEditTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/FileEditTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileEditTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/FileEditTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileEditTool/prompt.ts"
},
{
"name": "types",
"source_hint": "tools/FileEditTool/types.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileEditTool/types.ts"
},
{
"name": "utils",
"source_hint": "tools/FileEditTool/utils.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileEditTool/utils.ts"
},
{
"name": "FileReadTool",
"source_hint": "tools/FileReadTool/FileReadTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileReadTool/FileReadTool.ts"
},
{
"name": "UI",
"source_hint": "tools/FileReadTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileReadTool/UI.tsx"
},
{
"name": "imageProcessor",
"source_hint": "tools/FileReadTool/imageProcessor.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileReadTool/imageProcessor.ts"
},
{
"name": "limits",
"source_hint": "tools/FileReadTool/limits.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileReadTool/limits.ts"
},
{
"name": "prompt",
"source_hint": "tools/FileReadTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileReadTool/prompt.ts"
},
{
"name": "FileWriteTool",
"source_hint": "tools/FileWriteTool/FileWriteTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileWriteTool/FileWriteTool.ts"
},
{
"name": "UI",
"source_hint": "tools/FileWriteTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileWriteTool/UI.tsx"
},
{
"name": "prompt",
"source_hint": "tools/FileWriteTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/FileWriteTool/prompt.ts"
},
{
"name": "GlobTool",
"source_hint": "tools/GlobTool/GlobTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/GlobTool/GlobTool.ts"
},
{
"name": "UI",
"source_hint": "tools/GlobTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/GlobTool/UI.tsx"
},
{
"name": "prompt",
"source_hint": "tools/GlobTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/GlobTool/prompt.ts"
},
{
"name": "GrepTool",
"source_hint": "tools/GrepTool/GrepTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/GrepTool/GrepTool.ts"
},
{
"name": "UI",
"source_hint": "tools/GrepTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/GrepTool/UI.tsx"
},
{
"name": "prompt",
"source_hint": "tools/GrepTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/GrepTool/prompt.ts"
},
{
"name": "LSPTool",
"source_hint": "tools/LSPTool/LSPTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/LSPTool/LSPTool.ts"
},
{
"name": "UI",
"source_hint": "tools/LSPTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/LSPTool/UI.tsx"
},
{
"name": "formatters",
"source_hint": "tools/LSPTool/formatters.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/LSPTool/formatters.ts"
},
{
"name": "prompt",
"source_hint": "tools/LSPTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/LSPTool/prompt.ts"
},
{
"name": "schemas",
"source_hint": "tools/LSPTool/schemas.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/LSPTool/schemas.ts"
},
{
"name": "symbolContext",
"source_hint": "tools/LSPTool/symbolContext.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/LSPTool/symbolContext.ts"
},
{
"name": "ListMcpResourcesTool",
"source_hint": "tools/ListMcpResourcesTool/ListMcpResourcesTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ListMcpResourcesTool/ListMcpResourcesTool.ts"
},
{
"name": "UI",
"source_hint": "tools/ListMcpResourcesTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ListMcpResourcesTool/UI.tsx"
},
{
"name": "prompt",
"source_hint": "tools/ListMcpResourcesTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ListMcpResourcesTool/prompt.ts"
},
{
"name": "MCPTool",
"source_hint": "tools/MCPTool/MCPTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/MCPTool/MCPTool.ts"
},
{
"name": "UI",
"source_hint": "tools/MCPTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/MCPTool/UI.tsx"
},
{
"name": "classifyForCollapse",
"source_hint": "tools/MCPTool/classifyForCollapse.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/MCPTool/classifyForCollapse.ts"
},
{
"name": "prompt",
"source_hint": "tools/MCPTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/MCPTool/prompt.ts"
},
{
"name": "McpAuthTool",
"source_hint": "tools/McpAuthTool/McpAuthTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/McpAuthTool/McpAuthTool.ts"
},
{
"name": "NotebookEditTool",
"source_hint": "tools/NotebookEditTool/NotebookEditTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/NotebookEditTool/NotebookEditTool.ts"
},
{
"name": "UI",
"source_hint": "tools/NotebookEditTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/NotebookEditTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/NotebookEditTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/NotebookEditTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/NotebookEditTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/NotebookEditTool/prompt.ts"
},
{
"name": "PowerShellTool",
"source_hint": "tools/PowerShellTool/PowerShellTool.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/PowerShellTool.tsx"
},
{
"name": "UI",
"source_hint": "tools/PowerShellTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/UI.tsx"
},
{
"name": "clmTypes",
"source_hint": "tools/PowerShellTool/clmTypes.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/clmTypes.ts"
},
{
"name": "commandSemantics",
"source_hint": "tools/PowerShellTool/commandSemantics.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/commandSemantics.ts"
},
{
"name": "commonParameters",
"source_hint": "tools/PowerShellTool/commonParameters.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/commonParameters.ts"
},
{
"name": "destructiveCommandWarning",
"source_hint": "tools/PowerShellTool/destructiveCommandWarning.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/destructiveCommandWarning.ts"
},
{
"name": "gitSafety",
"source_hint": "tools/PowerShellTool/gitSafety.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/gitSafety.ts"
},
{
"name": "modeValidation",
"source_hint": "tools/PowerShellTool/modeValidation.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/modeValidation.ts"
},
{
"name": "pathValidation",
"source_hint": "tools/PowerShellTool/pathValidation.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/pathValidation.ts"
},
{
"name": "powershellPermissions",
"source_hint": "tools/PowerShellTool/powershellPermissions.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/powershellPermissions.ts"
},
{
"name": "powershellSecurity",
"source_hint": "tools/PowerShellTool/powershellSecurity.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/powershellSecurity.ts"
},
{
"name": "prompt",
"source_hint": "tools/PowerShellTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/prompt.ts"
},
{
"name": "readOnlyValidation",
"source_hint": "tools/PowerShellTool/readOnlyValidation.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/readOnlyValidation.ts"
},
{
"name": "toolName",
"source_hint": "tools/PowerShellTool/toolName.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/PowerShellTool/toolName.ts"
},
{
"name": "constants",
"source_hint": "tools/REPLTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/REPLTool/constants.ts"
},
{
"name": "primitiveTools",
"source_hint": "tools/REPLTool/primitiveTools.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/REPLTool/primitiveTools.ts"
},
{
"name": "ReadMcpResourceTool",
"source_hint": "tools/ReadMcpResourceTool/ReadMcpResourceTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ReadMcpResourceTool/ReadMcpResourceTool.ts"
},
{
"name": "UI",
"source_hint": "tools/ReadMcpResourceTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ReadMcpResourceTool/UI.tsx"
},
{
"name": "prompt",
"source_hint": "tools/ReadMcpResourceTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ReadMcpResourceTool/prompt.ts"
},
{
"name": "RemoteTriggerTool",
"source_hint": "tools/RemoteTriggerTool/RemoteTriggerTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/RemoteTriggerTool/RemoteTriggerTool.ts"
},
{
"name": "UI",
"source_hint": "tools/RemoteTriggerTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/RemoteTriggerTool/UI.tsx"
},
{
"name": "prompt",
"source_hint": "tools/RemoteTriggerTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/RemoteTriggerTool/prompt.ts"
},
{
"name": "CronCreateTool",
"source_hint": "tools/ScheduleCronTool/CronCreateTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ScheduleCronTool/CronCreateTool.ts"
},
{
"name": "CronDeleteTool",
"source_hint": "tools/ScheduleCronTool/CronDeleteTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ScheduleCronTool/CronDeleteTool.ts"
},
{
"name": "CronListTool",
"source_hint": "tools/ScheduleCronTool/CronListTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ScheduleCronTool/CronListTool.ts"
},
{
"name": "UI",
"source_hint": "tools/ScheduleCronTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ScheduleCronTool/UI.tsx"
},
{
"name": "prompt",
"source_hint": "tools/ScheduleCronTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ScheduleCronTool/prompt.ts"
},
{
"name": "SendMessageTool",
"source_hint": "tools/SendMessageTool/SendMessageTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SendMessageTool/SendMessageTool.ts"
},
{
"name": "UI",
"source_hint": "tools/SendMessageTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SendMessageTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/SendMessageTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SendMessageTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/SendMessageTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SendMessageTool/prompt.ts"
},
{
"name": "SkillTool",
"source_hint": "tools/SkillTool/SkillTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SkillTool/SkillTool.ts"
},
{
"name": "UI",
"source_hint": "tools/SkillTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SkillTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/SkillTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SkillTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/SkillTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SkillTool/prompt.ts"
},
{
"name": "prompt",
"source_hint": "tools/SleepTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SleepTool/prompt.ts"
},
{
"name": "SyntheticOutputTool",
"source_hint": "tools/SyntheticOutputTool/SyntheticOutputTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/SyntheticOutputTool/SyntheticOutputTool.ts"
},
{
"name": "TaskCreateTool",
"source_hint": "tools/TaskCreateTool/TaskCreateTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskCreateTool/TaskCreateTool.ts"
},
{
"name": "constants",
"source_hint": "tools/TaskCreateTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskCreateTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/TaskCreateTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskCreateTool/prompt.ts"
},
{
"name": "TaskGetTool",
"source_hint": "tools/TaskGetTool/TaskGetTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskGetTool/TaskGetTool.ts"
},
{
"name": "constants",
"source_hint": "tools/TaskGetTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskGetTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/TaskGetTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskGetTool/prompt.ts"
},
{
"name": "TaskListTool",
"source_hint": "tools/TaskListTool/TaskListTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskListTool/TaskListTool.ts"
},
{
"name": "constants",
"source_hint": "tools/TaskListTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskListTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/TaskListTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskListTool/prompt.ts"
},
{
"name": "TaskOutputTool",
"source_hint": "tools/TaskOutputTool/TaskOutputTool.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskOutputTool/TaskOutputTool.tsx"
},
{
"name": "constants",
"source_hint": "tools/TaskOutputTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskOutputTool/constants.ts"
},
{
"name": "TaskStopTool",
"source_hint": "tools/TaskStopTool/TaskStopTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskStopTool/TaskStopTool.ts"
},
{
"name": "UI",
"source_hint": "tools/TaskStopTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskStopTool/UI.tsx"
},
{
"name": "prompt",
"source_hint": "tools/TaskStopTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskStopTool/prompt.ts"
},
{
"name": "TaskUpdateTool",
"source_hint": "tools/TaskUpdateTool/TaskUpdateTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskUpdateTool/TaskUpdateTool.ts"
},
{
"name": "constants",
"source_hint": "tools/TaskUpdateTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskUpdateTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/TaskUpdateTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TaskUpdateTool/prompt.ts"
},
{
"name": "TeamCreateTool",
"source_hint": "tools/TeamCreateTool/TeamCreateTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TeamCreateTool/TeamCreateTool.ts"
},
{
"name": "UI",
"source_hint": "tools/TeamCreateTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TeamCreateTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/TeamCreateTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TeamCreateTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/TeamCreateTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TeamCreateTool/prompt.ts"
},
{
"name": "TeamDeleteTool",
"source_hint": "tools/TeamDeleteTool/TeamDeleteTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TeamDeleteTool/TeamDeleteTool.ts"
},
{
"name": "UI",
"source_hint": "tools/TeamDeleteTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TeamDeleteTool/UI.tsx"
},
{
"name": "constants",
"source_hint": "tools/TeamDeleteTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TeamDeleteTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/TeamDeleteTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TeamDeleteTool/prompt.ts"
},
{
"name": "TodoWriteTool",
"source_hint": "tools/TodoWriteTool/TodoWriteTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TodoWriteTool/TodoWriteTool.ts"
},
{
"name": "constants",
"source_hint": "tools/TodoWriteTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TodoWriteTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/TodoWriteTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/TodoWriteTool/prompt.ts"
},
{
"name": "ToolSearchTool",
"source_hint": "tools/ToolSearchTool/ToolSearchTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ToolSearchTool/ToolSearchTool.ts"
},
{
"name": "constants",
"source_hint": "tools/ToolSearchTool/constants.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ToolSearchTool/constants.ts"
},
{
"name": "prompt",
"source_hint": "tools/ToolSearchTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/ToolSearchTool/prompt.ts"
},
{
"name": "UI",
"source_hint": "tools/WebFetchTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/WebFetchTool/UI.tsx"
},
{
"name": "WebFetchTool",
"source_hint": "tools/WebFetchTool/WebFetchTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/WebFetchTool/WebFetchTool.ts"
},
{
"name": "preapproved",
"source_hint": "tools/WebFetchTool/preapproved.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/WebFetchTool/preapproved.ts"
},
{
"name": "prompt",
"source_hint": "tools/WebFetchTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/WebFetchTool/prompt.ts"
},
{
"name": "utils",
"source_hint": "tools/WebFetchTool/utils.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/WebFetchTool/utils.ts"
},
{
"name": "UI",
"source_hint": "tools/WebSearchTool/UI.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/WebSearchTool/UI.tsx"
},
{
"name": "WebSearchTool",
"source_hint": "tools/WebSearchTool/WebSearchTool.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/WebSearchTool/WebSearchTool.ts"
},
{
"name": "prompt",
"source_hint": "tools/WebSearchTool/prompt.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/WebSearchTool/prompt.ts"
},
{
"name": "gitOperationTracking",
"source_hint": "tools/shared/gitOperationTracking.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/shared/gitOperationTracking.ts"
},
{
"name": "spawnMultiAgent",
"source_hint": "tools/shared/spawnMultiAgent.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/shared/spawnMultiAgent.ts"
},
{
"name": "TestingPermissionTool",
"source_hint": "tools/testing/TestingPermissionTool.tsx",
"responsibility": "Tool module mirrored from archived TypeScript path tools/testing/TestingPermissionTool.tsx"
},
{
"name": "utils",
"source_hint": "tools/utils.ts",
"responsibility": "Tool module mirrored from archived TypeScript path tools/utils.ts"
}
]

16
src/remote/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `remote` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'remote.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

5
src/replLauncher.py Normal file
View File

@@ -0,0 +1,5 @@
from __future__ import annotations
def build_repl_banner() -> str:
return 'Python porting REPL is not interactive yet; use `python3 -m src.main summary` instead.'

55
src/runtime.py Normal file
View File

@@ -0,0 +1,55 @@
from __future__ import annotations
from dataclasses import dataclass
from .commands import PORTED_COMMANDS
from .tools import PORTED_TOOLS
from .models import PortingModule
@dataclass(frozen=True)
class RoutedMatch:
kind: str
name: str
source_hint: str
score: int
class PortRuntime:
def route_prompt(self, prompt: str, limit: int = 5) -> list[RoutedMatch]:
tokens = {token.lower() for token in prompt.replace('/', ' ').replace('-', ' ').split() if token}
by_kind = {
'command': self._collect_matches(tokens, PORTED_COMMANDS, 'command'),
'tool': self._collect_matches(tokens, PORTED_TOOLS, 'tool'),
}
selected: list[RoutedMatch] = []
# Prefer at least one representative from each kind when available.
for kind in ('command', 'tool'):
if by_kind[kind]:
selected.append(by_kind[kind].pop(0))
leftovers = sorted(
[match for matches in by_kind.values() for match in matches],
key=lambda item: (-item.score, item.kind, item.name),
)
selected.extend(leftovers[: max(0, limit - len(selected))])
return selected[:limit]
def _collect_matches(self, tokens: set[str], modules: tuple[PortingModule, ...], kind: str) -> list[RoutedMatch]:
matches: list[RoutedMatch] = []
for module in modules:
score = self._score(tokens, module)
if score > 0:
matches.append(RoutedMatch(kind=kind, name=module.name, source_hint=module.source_hint, score=score))
matches.sort(key=lambda item: (-item.score, item.name))
return matches
@staticmethod
def _score(tokens: set[str], module: PortingModule) -> int:
haystacks = [module.name.lower(), module.source_hint.lower(), module.responsibility.lower()]
score = 0
for token in tokens:
if any(token in haystack for haystack in haystacks):
score += 1
return score

16
src/schemas/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `schemas` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'schemas.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/screens/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `screens` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'screens.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/server/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `server` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'server.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/services/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `services` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'services.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

9
src/setup.py Normal file
View File

@@ -0,0 +1,9 @@
from __future__ import annotations
from dataclasses import dataclass
@dataclass(frozen=True)
class WorkspaceSetup:
python_version: str = '3.13+'
test_command: str = 'python3 -m unittest discover -s tests -v'

16
src/skills/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `skills` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'skills.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/state/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `state` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'state.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

5
src/task.py Normal file
View File

@@ -0,0 +1,5 @@
from __future__ import annotations
from .task import PortingTask
__all__ = ['PortingTask']

11
src/tasks.py Normal file
View File

@@ -0,0 +1,11 @@
from __future__ import annotations
from .task import PortingTask
def default_tasks() -> list[PortingTask]:
return [
PortingTask('root-module-parity', 'Mirror the root module surface of the archived snapshot'),
PortingTask('directory-parity', 'Mirror top-level subsystem names as Python packages'),
PortingTask('parity-audit', 'Continuously measure parity against the local archive'),
]

58
src/tools.py Normal file
View File

@@ -0,0 +1,58 @@
from __future__ import annotations
import json
from functools import lru_cache
from pathlib import Path
from .models import PortingBacklog, PortingModule
SNAPSHOT_PATH = Path(__file__).resolve().parent / 'reference_data' / 'tools_snapshot.json'
@lru_cache(maxsize=1)
def load_tool_snapshot() -> tuple[PortingModule, ...]:
raw_entries = json.loads(SNAPSHOT_PATH.read_text())
return tuple(
PortingModule(
name=entry['name'],
responsibility=entry['responsibility'],
source_hint=entry['source_hint'],
status='mirrored',
)
for entry in raw_entries
)
PORTED_TOOLS = load_tool_snapshot()
def build_tool_backlog() -> PortingBacklog:
return PortingBacklog(title='Tool surface', modules=list(PORTED_TOOLS))
def tool_names() -> list[str]:
return [module.name for module in PORTED_TOOLS]
def get_tool(name: str) -> PortingModule | None:
needle = name.lower()
for module in PORTED_TOOLS:
if module.name.lower() == needle:
return module
return None
def find_tools(query: str, limit: int = 20) -> list[PortingModule]:
needle = query.lower()
matches = [module for module in PORTED_TOOLS if needle in module.name.lower() or needle in module.source_hint.lower()]
return matches[:limit]
def render_tool_index(limit: int = 20, query: str | None = None) -> str:
modules = find_tools(query, limit) if query else list(PORTED_TOOLS[:limit])
lines = [f'Tool entries: {len(PORTED_TOOLS)}', '']
if query:
lines.append(f'Filtered by: {query}')
lines.append('')
lines.extend(f'- {module.name}{module.source_hint}' for module in modules)
return '\n'.join(lines)

16
src/types/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `types` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'types.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `upstreamproxy` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'upstreamproxy.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/utils/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `utils` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'utils.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/vim/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `vim` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'vim.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']

16
src/voice/__init__.py Normal file
View File

@@ -0,0 +1,16 @@
"""Python package placeholder for the archived `voice` subsystem."""
from __future__ import annotations
import json
from pathlib import Path
SNAPSHOT_PATH = Path(__file__).resolve().parent.parent / 'reference_data' / 'subsystems' / 'voice.json'
_SNAPSHOT = json.loads(SNAPSHOT_PATH.read_text())
ARCHIVE_NAME = _SNAPSHOT['archive_name']
MODULE_COUNT = _SNAPSHOT['module_count']
SAMPLE_FILES = tuple(_SNAPSHOT['sample_files'])
PORTING_NOTE = f"Python placeholder package for '{ARCHIVE_NAME}' with {MODULE_COUNT} archived module references."
__all__ = ['ARCHIVE_NAME', 'MODULE_COUNT', 'PORTING_NOTE', 'SAMPLE_FILES']