engineering-platform 2.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- engineering_platform/ENGINEERING_PLATFORM_CONFIG.json +32 -0
- engineering_platform/ENGINEERING_PLATFORM_VERSION.json +15 -0
- engineering_platform/__init__.py +1 -0
- engineering_platform/__main__.py +7 -0
- engineering_platform/agent_state.py +530 -0
- engineering_platform/agent_trust.py +174 -0
- engineering_platform/assets/dashboard.css +1317 -0
- engineering_platform/assets/dashboard.js +8534 -0
- engineering_platform/assets/dashboard_locales.mjs +4049 -0
- engineering_platform/assets/dashboard_status_store.mjs +41 -0
- engineering_platform/assets/operations-console/apple-touch-icon-dark.png +0 -0
- engineering_platform/assets/operations-console/apple-touch-icon-light.png +0 -0
- engineering_platform/assets/operations-console/icon-dark.png +0 -0
- engineering_platform/assets/operations-console/icon-light.png +0 -0
- engineering_platform/assets/operations-console/icon-transparent.png +0 -0
- engineering_platform/assets/operations-console/manifest.webmanifest +11 -0
- engineering_platform/capability_preflight.py +285 -0
- engineering_platform/capability_review.py +261 -0
- engineering_platform/central_data_transfer.py +195 -0
- engineering_platform/central_database.py +245 -0
- engineering_platform/central_store_migration.py +1672 -0
- engineering_platform/codex_capacity.py +81 -0
- engineering_platform/codex_chat.py +226 -0
- engineering_platform/codex_observability.py +153 -0
- engineering_platform/component_lock.py +40 -0
- engineering_platform/component_logging.py +420 -0
- engineering_platform/console_presentation.py +14 -0
- engineering_platform/console_route_ownership.py +83 -0
- engineering_platform/contracts/__init__.py +38 -0
- engineering_platform/contracts/ep_consumer.py +391 -0
- engineering_platform/contracts/models.py +105 -0
- engineering_platform/contracts/projection.py +401 -0
- engineering_platform/dashboard_browser_validation.py +206 -0
- engineering_platform/dashboard_state.py +630 -0
- engineering_platform/dashboard_supervisor.swift +105 -0
- engineering_platform/dashboard_translation.py +129 -0
- engineering_platform/dependabot_producer.py +349 -0
- engineering_platform/drift_diagnostics.py +144 -0
- engineering_platform/emergency_recovery.py +268 -0
- engineering_platform/engineering_memory.py +139 -0
- engineering_platform/ep_consumer_credentials.py +473 -0
- engineering_platform/evidence_projection.py +213 -0
- engineering_platform/execution_activity.py +218 -0
- engineering_platform/execution_context.py +132 -0
- engineering_platform/execution_errors.py +42 -0
- engineering_platform/execution_evidence.py +24 -0
- engineering_platform/execution_executor.py +730 -0
- engineering_platform/execution_finalization.py +44 -0
- engineering_platform/execution_host.py +3306 -0
- engineering_platform/execution_lease.py +365 -0
- engineering_platform/execution_lifecycle.py +447 -0
- engineering_platform/execution_models.py +43 -0
- engineering_platform/execution_readiness.py +166 -0
- engineering_platform/execution_reporting.py +1607 -0
- engineering_platform/execution_repository.py +253 -0
- engineering_platform/execution_timeout_policy.py +56 -0
- engineering_platform/execution_timing.py +440 -0
- engineering_platform/execution_transaction.py +28 -0
- engineering_platform/external_producer_binding.py +235 -0
- engineering_platform/file_inbox.py +249 -0
- engineering_platform/forensic_attribution.py +338 -0
- engineering_platform/forensic_attribution_v2.py +134 -0
- engineering_platform/forensic_delta.py +299 -0
- engineering_platform/golden_scenario.py +63 -0
- engineering_platform/historical_dashboard_configuration.py +171 -0
- engineering_platform/host_admin.py +199 -0
- engineering_platform/host_preflight.py +231 -0
- engineering_platform/installation_relocation.py +122 -0
- engineering_platform/investigation_ledger.py +89 -0
- engineering_platform/legacy_inbox_migration.py +79 -0
- engineering_platform/lifecycle_worker.py +223 -0
- engineering_platform/live_status.py +267 -0
- engineering_platform/local_api.py +209 -0
- engineering_platform/local_api_keychain.py +51 -0
- engineering_platform/local_repository_binding.py +138 -0
- engineering_platform/managed_autonomy.py +509 -0
- engineering_platform/managed_codex_runtime.py +105 -0
- engineering_platform/parity_context.py +203 -0
- engineering_platform/parity_lifecycle_dispatcher.py +488 -0
- engineering_platform/platform_admin.py +13 -0
- engineering_platform/platform_api.py +428 -0
- engineering_platform/platform_bootstrap.py +385 -0
- engineering_platform/platform_components.py +65 -0
- engineering_platform/platform_version.py +171 -0
- engineering_platform/pr_check_repair.py +276 -0
- engineering_platform/pr_evidence_backfill.py +278 -0
- engineering_platform/producer.py +209 -0
- engineering_platform/project_agent.py +366 -0
- engineering_platform/project_agent_service.py +244 -0
- engineering_platform/project_topology.py +126 -0
- engineering_platform/prompt_history.py +591 -0
- engineering_platform/provider_context.py +136 -0
- engineering_platform/provider_context_benchmark.py +41 -0
- engineering_platform/provider_context_scope.py +90 -0
- engineering_platform/provider_interruption.py +168 -0
- engineering_platform/provider_process_identity.py +80 -0
- engineering_platform/provider_readiness.py +138 -0
- engineering_platform/provider_recovery.py +647 -0
- engineering_platform/provider_usage.py +497 -0
- engineering_platform/providers.py +471 -0
- engineering_platform/qualification.py +220 -0
- engineering_platform/recommendation_handoff.py +238 -0
- engineering_platform/report_analysis.py +193 -0
- engineering_platform/repository_attachment.py +171 -0
- engineering_platform/repository_handoff.py +95 -0
- engineering_platform/resources.py +38 -0
- engineering_platform/reviewer_evidence.py +70 -0
- engineering_platform/schemas/repository-attachment.schema.json +61 -0
- engineering_platform/server.py +3679 -0
- engineering_platform/server_console_services.py +2024 -0
- engineering_platform/server_relay.py +172 -0
- engineering_platform/server_service.py +122 -0
- engineering_platform/status_model.py +135 -0
- engineering_platform/status_reconciliation.py +34 -0
- engineering_platform/storage.py +2440 -0
- engineering_platform/submission_cli.py +77 -0
- engineering_platform/submission_intake.py +45 -0
- engineering_platform/submission_service.py +317 -0
- engineering_platform/telemetry.py +951 -0
- engineering_platform/templates/workspace-config.json +25 -0
- engineering_platform/validation_identity.py +50 -0
- engineering_platform/validation_profile.py +211 -0
- engineering_platform/workspace_preflight.py +263 -0
- engineering_platform/worktree_provenance.py +147 -0
- engineering_platform/worktree_tooling.py +18 -0
- engineering_platform-2.2.0.dist-info/METADATA +18 -0
- engineering_platform-2.2.0.dist-info/RECORD +130 -0
- engineering_platform-2.2.0.dist-info/WHEEL +5 -0
- engineering_platform-2.2.0.dist-info/entry_points.txt +6 -0
- engineering_platform-2.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"""Compact, content-free worktree provenance for same-run recovery."""
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from datetime import datetime, timezone
|
|
5
|
+
import hashlib
|
|
6
|
+
import json
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
import subprocess
|
|
9
|
+
import tempfile
|
|
10
|
+
import os
|
|
11
|
+
|
|
12
|
+
from .storage import record_artifact, verify_artifact_integrity, open_storage
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _git(root: Path, *args: str) -> str | None:
|
|
16
|
+
try:
|
|
17
|
+
completed = subprocess.run(("git", *args), cwd=root, capture_output=True, text=True, timeout=5)
|
|
18
|
+
except (OSError, subprocess.SubprocessError):
|
|
19
|
+
return None
|
|
20
|
+
return completed.stdout if completed.returncode == 0 else None
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _snapshot(
|
|
24
|
+
root: Path, *, run_id: str, phase: str, transaction_baseline_sha: str | None = None,
|
|
25
|
+
) -> dict[str, object] | None:
|
|
26
|
+
status = _git(root, "status", "--porcelain=v1", "--untracked-files=all")
|
|
27
|
+
branch = _git(root, "branch", "--show-current")
|
|
28
|
+
head = _git(root, "rev-parse", "HEAD")
|
|
29
|
+
git_dir = _git(root, "rev-parse", "--git-dir")
|
|
30
|
+
repository = _git(root, "config", "--get", "remote.origin.url")
|
|
31
|
+
if None in {status, branch, head, git_dir}:
|
|
32
|
+
return None
|
|
33
|
+
# Engineering's own durable receipts are operational metadata, not source
|
|
34
|
+
# changes owned by the provider turn. They may be untracked in isolated
|
|
35
|
+
# qualification repositories, so exclude them from the source snapshot.
|
|
36
|
+
source_status = [
|
|
37
|
+
line.rstrip()
|
|
38
|
+
for line in str(status).splitlines()
|
|
39
|
+
if ".engineering/" not in line
|
|
40
|
+
]
|
|
41
|
+
normalized = "\n".join(sorted(source_status))
|
|
42
|
+
counts = {"modified": 0, "added": 0, "deleted": 0}
|
|
43
|
+
for line in normalized.splitlines():
|
|
44
|
+
code = line[:2]
|
|
45
|
+
if "D" in code:
|
|
46
|
+
counts["deleted"] += 1
|
|
47
|
+
elif "A" in code or code == "??":
|
|
48
|
+
counts["added"] += 1
|
|
49
|
+
elif code.strip():
|
|
50
|
+
counts["modified"] += 1
|
|
51
|
+
return {
|
|
52
|
+
"kind": "RECOVERY_WORKTREE_PROVENANCE",
|
|
53
|
+
"run_id": run_id,
|
|
54
|
+
"phase": phase,
|
|
55
|
+
"repository_identity": (repository or "local").strip()[:512],
|
|
56
|
+
"worktree_identity": str((root / str(git_dir).strip()).resolve()),
|
|
57
|
+
"branch": str(branch).strip(), "head_sha": str(head).strip(),
|
|
58
|
+
# The execution checkpoint may already have a verified baseline. A
|
|
59
|
+
# freshly admitted run uses its current HEAD as the equivalent
|
|
60
|
+
# baseline. This is identity evidence only, never a delivery diff.
|
|
61
|
+
"transaction_baseline_sha": transaction_baseline_sha or str(head).strip(),
|
|
62
|
+
"status": counts,
|
|
63
|
+
"status_digest": hashlib.sha256(normalized.encode("utf-8")).hexdigest(),
|
|
64
|
+
"captured_at": datetime.now(timezone.utc).isoformat(),
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def _write(root: Path, artifact_id: str, payload: dict[str, object]) -> bool:
|
|
69
|
+
directory = root / ".engineering" / "artifacts" / "worktree-provenance"
|
|
70
|
+
directory.mkdir(mode=0o700, parents=True, exist_ok=True)
|
|
71
|
+
path = directory / f"{hashlib.sha256(artifact_id.encode()).hexdigest()}.json"
|
|
72
|
+
descriptor, temporary = tempfile.mkstemp(prefix=".worktree-", suffix=".tmp", dir=directory)
|
|
73
|
+
try:
|
|
74
|
+
os.fchmod(descriptor, 0o600)
|
|
75
|
+
with os.fdopen(descriptor, "w", encoding="utf-8") as handle:
|
|
76
|
+
json.dump(payload, handle, sort_keys=True, separators=(",", ":"))
|
|
77
|
+
handle.write("\n")
|
|
78
|
+
handle.flush()
|
|
79
|
+
os.fsync(handle.fileno())
|
|
80
|
+
os.replace(temporary, path)
|
|
81
|
+
finally:
|
|
82
|
+
Path(temporary).unlink(missing_ok=True)
|
|
83
|
+
record_artifact(root, path, artifact_id=artifact_id, artifact_type="RECOVERY_WORKTREE_PROVENANCE",
|
|
84
|
+
content_type="application/json", created_at=str(payload["captured_at"]), run_id=str(payload["run_id"]))
|
|
85
|
+
return True
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def capture(
|
|
89
|
+
root: Path, *, run_id: str, phase: str, stage: str,
|
|
90
|
+
transaction_baseline_sha: str | None = None,
|
|
91
|
+
) -> bool:
|
|
92
|
+
"""Persist only the first bounded receipt for a stage."""
|
|
93
|
+
artifact_id = f"recovery-worktree:{run_id}:{stage}"
|
|
94
|
+
if _load(root, artifact_id) is not None:
|
|
95
|
+
return True
|
|
96
|
+
payload = _snapshot(
|
|
97
|
+
root, run_id=run_id, phase=phase,
|
|
98
|
+
transaction_baseline_sha=transaction_baseline_sha,
|
|
99
|
+
)
|
|
100
|
+
if payload is None:
|
|
101
|
+
return False
|
|
102
|
+
return _write(root, artifact_id, payload)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def _load(root: Path, artifact_id: str) -> dict[str, object] | None:
|
|
106
|
+
if not verify_artifact_integrity(root, artifact_id):
|
|
107
|
+
return None
|
|
108
|
+
connection = open_storage(root)
|
|
109
|
+
try:
|
|
110
|
+
row = connection.execute("SELECT storage_location FROM execution_artifact_records WHERE artifact_id=?", (artifact_id,)).fetchone()
|
|
111
|
+
finally:
|
|
112
|
+
connection.close()
|
|
113
|
+
try:
|
|
114
|
+
payload = json.loads((root / ".engineering" / str(row[0])).read_text(encoding="utf-8")) if row else None
|
|
115
|
+
except (OSError, ValueError, json.JSONDecodeError):
|
|
116
|
+
return None
|
|
117
|
+
return payload if isinstance(payload, dict) else None
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def verify_recovery(
|
|
121
|
+
root: Path, *, run_id: str, branch: str | None,
|
|
122
|
+
transaction_baseline_sha: str | None = None,
|
|
123
|
+
) -> bool | None:
|
|
124
|
+
"""Return True/False when evidence exists, or None before capture exists."""
|
|
125
|
+
baseline = _load(root, f"recovery-worktree:{run_id}:baseline")
|
|
126
|
+
progress = _load(root, f"recovery-worktree:{run_id}:interrupted")
|
|
127
|
+
if baseline is None and progress is None:
|
|
128
|
+
return None
|
|
129
|
+
expected = progress or baseline
|
|
130
|
+
current = _snapshot(
|
|
131
|
+
root, run_id=run_id, phase=str(expected.get("phase") or ""),
|
|
132
|
+
transaction_baseline_sha=transaction_baseline_sha,
|
|
133
|
+
)
|
|
134
|
+
if current is None or not isinstance(expected, dict):
|
|
135
|
+
return False
|
|
136
|
+
if branch and current.get("branch") != branch:
|
|
137
|
+
return False
|
|
138
|
+
for key in ("repository_identity", "worktree_identity", "branch"):
|
|
139
|
+
if current.get(key) != expected.get(key):
|
|
140
|
+
return False
|
|
141
|
+
if transaction_baseline_sha and expected.get("transaction_baseline_sha") != transaction_baseline_sha:
|
|
142
|
+
return False
|
|
143
|
+
# If the interruption receipt exists, exact status equivalence is the
|
|
144
|
+
# minimal non-content proof that no external dirty changes were adopted.
|
|
145
|
+
if progress is not None:
|
|
146
|
+
return current.get("head_sha") == expected.get("head_sha") and current.get("status_digest") == expected.get("status_digest")
|
|
147
|
+
return current.get("head_sha") == expected.get("head_sha")
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""Deterministic local tooling preparation for isolated worktrees."""
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
import subprocess # nosec B404 - fixed local package bootstrap
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class WorktreeToolingError(RuntimeError):
|
|
9
|
+
"""Raised when a declared browser runtime cannot be prepared."""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def prepare(worktree: Path) -> None:
|
|
13
|
+
"""Install the locked Playwright package when this worktree declares it."""
|
|
14
|
+
if not (worktree / "package-lock.json").is_file() or not (worktree / "playwright.config.mjs").is_file():
|
|
15
|
+
return
|
|
16
|
+
completed = subprocess.run(("npm", "ci"), cwd=worktree, check=False, capture_output=True, text=True)
|
|
17
|
+
if completed.returncode or not (worktree / "node_modules" / "@playwright" / "test").is_dir():
|
|
18
|
+
raise WorktreeToolingError("worktree_playwright_tooling_unavailable")
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: engineering-platform
|
|
3
|
+
Version: 2.2.0
|
|
4
|
+
Summary: Local-first Engineering Platform execution operations runtime
|
|
5
|
+
Author: Peter van Tol
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.11
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
|
|
10
|
+
# Engineering Platform
|
|
11
|
+
|
|
12
|
+
Engineering Platform is the local-first execution operations runtime extracted
|
|
13
|
+
from DJConnect with preserved source-history provenance. This Phase 3 foundation
|
|
14
|
+
is package/import qualified only. It does not activate services, create a
|
|
15
|
+
production data store, or cut over any consumer.
|
|
16
|
+
|
|
17
|
+
See `docs/provenance/PHASE_3_INCREMENT_1_EXTRACTION_RECEIPT.md` for the
|
|
18
|
+
source, history-export and equivalence record.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
engineering_platform/ENGINEERING_PLATFORM_CONFIG.json,sha256=QfZL7O8iSX7C9I0K76AVcVu10jKmDlJ4gH4LEeogyBY,948
|
|
2
|
+
engineering_platform/ENGINEERING_PLATFORM_VERSION.json,sha256=4rlaXQstz2WNylnR7tmSGWLLFA28aikjwVa0xdcjLZs,357
|
|
3
|
+
engineering_platform/__init__.py,sha256=nXpd4l9FAfJ_vhI_Zm_MgyAkkUhwQkZxtvQjqGXFgE8,70
|
|
4
|
+
engineering_platform/__main__.py,sha256=jVUDMzjHOp0ea3AMbQKIU8MydxU_o7HbJMJNJxnMZRE,170
|
|
5
|
+
engineering_platform/agent_state.py,sha256=_D2GBu2vZpkkCDUOP1QvQctTYHDaq7fMS7aMqAJIBK8,27484
|
|
6
|
+
engineering_platform/agent_trust.py,sha256=E_gup8pvWlSwt5XkQp2-RRFSNb-cSwI37PpWzn2291o,9697
|
|
7
|
+
engineering_platform/capability_preflight.py,sha256=Wad0xGWHpfttRZltPzQAg67b_-AaWCNOHUsL8L-WD3I,11002
|
|
8
|
+
engineering_platform/capability_review.py,sha256=lGbc_X9-_Hjaj8tmzUby4iV-UEEa9dU0JGSm3_V7KEc,12126
|
|
9
|
+
engineering_platform/central_data_transfer.py,sha256=XyJBFf0VV6rW6r--ppc0YWsB9vbcOPv-XiDbWIwNgsw,9371
|
|
10
|
+
engineering_platform/central_database.py,sha256=DOULIVFQLXAjO4iAHNAh9k6YKU-mL_97TdtDqrNzP8k,13720
|
|
11
|
+
engineering_platform/central_store_migration.py,sha256=THxrLJYQfBqtJ-UhmWYHUCUutwLSZIuOvXXUJ5JlkAU,93961
|
|
12
|
+
engineering_platform/codex_capacity.py,sha256=3SdXf_wRJJrnwXQbyeybw4B-K3wG7ugQmHrCx1YbPb8,3254
|
|
13
|
+
engineering_platform/codex_chat.py,sha256=kusMGcCGaoDCc5VyfiVyD2Cnhi50W1WWgYZZMYZXtPw,9219
|
|
14
|
+
engineering_platform/codex_observability.py,sha256=fxw7cnEHKP3sGwYRAbId8Q5YXMEDfBIQQxRUHmR14IA,5798
|
|
15
|
+
engineering_platform/component_lock.py,sha256=GkT0lizrWz-7bNDfFS_fGYhUt868XakXkwQHcI0UBXc,1337
|
|
16
|
+
engineering_platform/component_logging.py,sha256=AhqFBZam74koui3W5LTPWX5IGdUzE6FpTanL64UyoeQ,16764
|
|
17
|
+
engineering_platform/console_presentation.py,sha256=xTSrC1vLPNOmx9MBKFADmIBVJFbNK2DVZH64HaeiXwE,517
|
|
18
|
+
engineering_platform/console_route_ownership.py,sha256=dVeaHfyCnCGF-T29jAkiqHAF4Xc6324P4pIuXnEa5F0,6335
|
|
19
|
+
engineering_platform/dashboard_browser_validation.py,sha256=KK2lxBvSoXuUxanBkunVqLRJTnUt-VMshFoxED5-b6g,8551
|
|
20
|
+
engineering_platform/dashboard_state.py,sha256=ssF6Ognwq_MXrLZfFq9QPpGpfLubTHgTGfi_ZBW0ct8,30197
|
|
21
|
+
engineering_platform/dashboard_supervisor.swift,sha256=1lZhB0xN3YLQ_7DyDjcStfpqvQtqxj9MYtlvNZn0R2M,3777
|
|
22
|
+
engineering_platform/dashboard_translation.py,sha256=3W4lb_EjJzQDFw3H2rBglp2uMOcfcadEz7krUo7K4iI,5511
|
|
23
|
+
engineering_platform/dependabot_producer.py,sha256=6dhOIUhS318JLwLoFPZn4rAmSQ_8q65iCTQETu8JBEc,14997
|
|
24
|
+
engineering_platform/drift_diagnostics.py,sha256=Rfsafgt5CjFBqwJ_LdIBcPXECkKfZvJHHOE-iedJRo4,5921
|
|
25
|
+
engineering_platform/emergency_recovery.py,sha256=pmhJ-7gNhtqt_4GNAhPAOZs3bNRTHKt9AXup5IlageA,13264
|
|
26
|
+
engineering_platform/engineering_memory.py,sha256=SiYpip6WNP448Kvitm20DxeRWezLswxjLvU-yr1EPIw,5290
|
|
27
|
+
engineering_platform/ep_consumer_credentials.py,sha256=1jHuz_kZ-sU5wMnp9qREGJIqphqF549EhAl7l6n0KfU,20690
|
|
28
|
+
engineering_platform/evidence_projection.py,sha256=ZlZ457rn2SdH29kklJlU9oJSsKO-RCR5Ogb1uNDLzuk,9933
|
|
29
|
+
engineering_platform/execution_activity.py,sha256=h8R8pWTe5qbtJZ9pzMBh2vVfSB0jieLAEQ2jnfSAGW8,10002
|
|
30
|
+
engineering_platform/execution_context.py,sha256=lqPfZ9qM-3YwDQbi3wuszRvd2yFZCHdS-_b7V_TIxhc,6376
|
|
31
|
+
engineering_platform/execution_errors.py,sha256=MjXblg75yDG7SFJ5YpV8WNoUvm1ywUyzvpQ_aQkwSpc,1498
|
|
32
|
+
engineering_platform/execution_evidence.py,sha256=_5X76Dd_kU6anI24mTCXT_6_346Epi5BeFPWchgXts4,717
|
|
33
|
+
engineering_platform/execution_executor.py,sha256=K6wcU8o8C8sKODXd6uuiAvkh7-M6wqeiOOKxVFlXfDk,35626
|
|
34
|
+
engineering_platform/execution_finalization.py,sha256=2hSsJa8QpxTBEnM2NaeU0snwppS80IJ8YL6Iv45EdDU,1819
|
|
35
|
+
engineering_platform/execution_host.py,sha256=rR4O6GbHT-rqBKwFVNICFmQ6RSwLRcFgqKoeCPk-t9Q,186537
|
|
36
|
+
engineering_platform/execution_lease.py,sha256=I3eV7xKz-5-bLg6qPSnVNRlOOsFIDkaUey8KtK1wZdE,18004
|
|
37
|
+
engineering_platform/execution_lifecycle.py,sha256=TywAh7imvA_6LNuhKS2fyz2doO75W0bR6STOE_22hMY,23385
|
|
38
|
+
engineering_platform/execution_models.py,sha256=dOW0MC6Cndiu1BvFv1FpHo2d1dIp1EZhwE_6d4QDr68,1258
|
|
39
|
+
engineering_platform/execution_readiness.py,sha256=LXxf2NKlt-w68DN0I6UR4PEDgqYCfN-1Eh2fUD2h3Ec,7712
|
|
40
|
+
engineering_platform/execution_reporting.py,sha256=s7Jl7tj26OV-OGGieFR9EZhta3JRUR4yI2OyH4M_bsk,91023
|
|
41
|
+
engineering_platform/execution_repository.py,sha256=vVN12D7qfZzpEJ2aGFiFl--sA7r-iIlG4myDTDyF6hs,13158
|
|
42
|
+
engineering_platform/execution_timeout_policy.py,sha256=XFcAzH0Poa7JQ_CqpnWZYB5KQg2Mhsk_phZ3tQnjcjA,1786
|
|
43
|
+
engineering_platform/execution_timing.py,sha256=oJs6WCFsOYjoBNiOMA4MvFYozmFRqeB2qQU-_i3890E,21907
|
|
44
|
+
engineering_platform/execution_transaction.py,sha256=pG1gHhGT292qdH0rr9NWNOeNWaYNmNC8AL2L3H9SsTQ,812
|
|
45
|
+
engineering_platform/external_producer_binding.py,sha256=TNCIa8nLADb5-QQ8fOoUz1yirMbtgfWd83NoYI2pwok,9141
|
|
46
|
+
engineering_platform/file_inbox.py,sha256=a1ZwUTXYJqdLEaxcuaM11lONjTGZUV81PWqVENrYHEM,11632
|
|
47
|
+
engineering_platform/forensic_attribution.py,sha256=9eeo9OXOznJvDxmXocJ3HNIOVy8dc2uKONIA_ElgxuE,20407
|
|
48
|
+
engineering_platform/forensic_attribution_v2.py,sha256=nWr9kn7p147Tdi_dFqH20-Ig1OkTiRLwqTrC5UJ5VIM,6268
|
|
49
|
+
engineering_platform/forensic_delta.py,sha256=NuZsYt53m6tRoEySpb6J6NavoARJRJLp7iXiZbuUUOU,15047
|
|
50
|
+
engineering_platform/golden_scenario.py,sha256=v1xLCyzxlM-tYump3a8xdB6xHpY7sS7vZny-vJXX3To,3604
|
|
51
|
+
engineering_platform/historical_dashboard_configuration.py,sha256=r8xSJMSUw8G1TliNwd1zcVSZcocVYkQ7zo_9fEOwE-k,6301
|
|
52
|
+
engineering_platform/host_admin.py,sha256=x4ZzmPn9SJ3mTysJtoT1bxnETUY0HAEoHYc5GPsSjvQ,9637
|
|
53
|
+
engineering_platform/host_preflight.py,sha256=jbk5X87nNWUC08tTw_It_ZitMk6Oi8QWAzpZ-kwtD-8,10342
|
|
54
|
+
engineering_platform/installation_relocation.py,sha256=yslZiuV-mZ2vnW20SmteEgDI5vAIPF7EywtTIKinHZ0,5229
|
|
55
|
+
engineering_platform/investigation_ledger.py,sha256=A32XKvmXRsY9nzFosFPfkpuznwAejHkCYqyFO9TWBrc,3260
|
|
56
|
+
engineering_platform/legacy_inbox_migration.py,sha256=7gXGiP6l4nwk1wzgDvl_gqJ0EzH8EpGPeADZp8W_36E,2853
|
|
57
|
+
engineering_platform/lifecycle_worker.py,sha256=KmET1bG70NZkTHJnpWAq4Fgg0lpnupQ90LMl13y8yVM,9820
|
|
58
|
+
engineering_platform/live_status.py,sha256=NVlZeoOb0oUShl5nqaBRfUCMGmLrvYQeddYJ8RBS1kk,13702
|
|
59
|
+
engineering_platform/local_api.py,sha256=b062wQlxLuJa4pi2wvq_9ZOk6RoAvYRSEHeBfKDh_r0,7235
|
|
60
|
+
engineering_platform/local_api_keychain.py,sha256=PhYCs0Rp_SH42uH5srZDPmnzFxHVBvAboIw-JjBNLbU,2270
|
|
61
|
+
engineering_platform/local_repository_binding.py,sha256=M3lyVEIKah92uRhTjdBnka5A1SniWoGEniauew_wtBI,6563
|
|
62
|
+
engineering_platform/managed_autonomy.py,sha256=D5X_vI2gr0WFQTMMhVcNPJOV1QNkbhYNrDR0dGqam0o,22100
|
|
63
|
+
engineering_platform/managed_codex_runtime.py,sha256=yvGVmXi2fuk_iGBjdGwhlNQE_yFmDmF50eL44IF0dG0,4872
|
|
64
|
+
engineering_platform/parity_context.py,sha256=i2jhw8OoNgJBjbmgoyketGEbw1zS5QAuq2YZL7DP2eU,9239
|
|
65
|
+
engineering_platform/parity_lifecycle_dispatcher.py,sha256=zMMD2e-NiFZhGNUNSLqFwPCgLlWcE-SNOyD-U3_zDeo,25982
|
|
66
|
+
engineering_platform/platform_admin.py,sha256=ULDUoVesbHgFF-X7MlkgkDdAd_dHhJ2mlsUL08_P1Ew,425
|
|
67
|
+
engineering_platform/platform_api.py,sha256=abObOx0aiDnnYHgNIRYkwP03HcutezYMzW6-jFTmx8I,20290
|
|
68
|
+
engineering_platform/platform_bootstrap.py,sha256=y7DF8_-Zl76pWt9K8BdSdvRbuZR6iDHbUzcbsdnRIMc,17473
|
|
69
|
+
engineering_platform/platform_components.py,sha256=phUUbY96IvmvBKgWmp5fJafD52MS-U-J0xJnH-KrfhQ,3802
|
|
70
|
+
engineering_platform/platform_version.py,sha256=zxKbdmVQdTY4LipQgXVpGid-4DgdqlNWsBTJ9GNPNSw,7243
|
|
71
|
+
engineering_platform/pr_check_repair.py,sha256=d4zyAtODJBElcmiCfWHXQpSaf8YUZ2epqjRlVUGllYI,13002
|
|
72
|
+
engineering_platform/pr_evidence_backfill.py,sha256=8wJGXaSo18fB1h5836bwELh1EycZW8i2gXkmd8rAXpI,12810
|
|
73
|
+
engineering_platform/producer.py,sha256=g0XihF1DiDZFRC9LazDIoTq8oSwz5LMe8KGzQZy9UmU,10097
|
|
74
|
+
engineering_platform/project_agent.py,sha256=VoUKlWNGpKArBBI-PeTOLmkxlpT-oHzZoT2PWF7u3oE,16885
|
|
75
|
+
engineering_platform/project_agent_service.py,sha256=AqLsKZ3ifOFWkAvsvTuTcmxw1O8fJfMKscw8jP2beWg,11119
|
|
76
|
+
engineering_platform/project_topology.py,sha256=r4-l1Fdmrr4cI8rGJx8Mj2UjR1QOALI-yXs1NniKW7U,9562
|
|
77
|
+
engineering_platform/prompt_history.py,sha256=QSSrYsAvUuoRpjoRfoL5ewXkipApFrP7tkrM--fU2Zc,27134
|
|
78
|
+
engineering_platform/provider_context.py,sha256=gz233nKIZNqJfWhPGSMrIvU-udx0gfKB8jenAFyzo14,5268
|
|
79
|
+
engineering_platform/provider_context_benchmark.py,sha256=FnF36XDoGlBYmJ6KQFk5x0yFDG3YXMH91TXJRsq7NYQ,1457
|
|
80
|
+
engineering_platform/provider_context_scope.py,sha256=xP5lVJp8ZwxxKTSRxsp_9OhxHQvqxg9XWpgehj_c4W8,3791
|
|
81
|
+
engineering_platform/provider_interruption.py,sha256=cCsF71YyYG2Xietkq-QsdFiq_O0-04UAYQd3O17LmUA,7358
|
|
82
|
+
engineering_platform/provider_process_identity.py,sha256=CCyLqSXIzpyHiuP8NkodopU_ym1oAvNj5b8FICiSmpg,2904
|
|
83
|
+
engineering_platform/provider_readiness.py,sha256=wkzOY_VxbYygMWybefcWNAKkU8ejhRrZBMVHUegRcXQ,5444
|
|
84
|
+
engineering_platform/provider_recovery.py,sha256=Cg6gGMUC9w1bhhfc_xdA4Plz11BrqSEOvkUjzWj1eao,32029
|
|
85
|
+
engineering_platform/provider_usage.py,sha256=VOPqw92cAnI8vnqHotQXWDbzDeLaAvgyYls_YuVrkXA,21688
|
|
86
|
+
engineering_platform/providers.py,sha256=ZomF22lD2j9mOjm61I5Mu_ArkYX8rGrdiGnNPKE3_b8,20114
|
|
87
|
+
engineering_platform/qualification.py,sha256=03LAYuc38Lt3ItFR-5VN-Cr6k3yFra_tSCiQ1VNESeE,8531
|
|
88
|
+
engineering_platform/recommendation_handoff.py,sha256=3ooRYm-xPkSf_dBuS8qMocq472Rk_5Q1n200W3olRNE,15389
|
|
89
|
+
engineering_platform/report_analysis.py,sha256=vjwpxPQvdeSKkhCRlxrdfCTD6F1vn8YiwGT8dL5fPF8,8332
|
|
90
|
+
engineering_platform/repository_attachment.py,sha256=xsjO122bSU0ufI-J9asn6qckW3trfVYaA2ag3Z_e3EY,7713
|
|
91
|
+
engineering_platform/repository_handoff.py,sha256=DtKUsu4yTN_C0kXK_ORyBfEzFWu7uoK5qbAcVeEPoLo,3791
|
|
92
|
+
engineering_platform/resources.py,sha256=ZeENUrI4TyRV-c4w1LElqBY3bF5PmRt-ljH-2XRcsi0,1465
|
|
93
|
+
engineering_platform/reviewer_evidence.py,sha256=ZJLWqs_bVrxn7MZ1JD_sVI07mwOrnnmlR8jJ3ol22DI,2420
|
|
94
|
+
engineering_platform/server.py,sha256=ARPiCOVw_2M48DEe3l9igJ9mDBWGfxzgROd9s7Ar94I,219275
|
|
95
|
+
engineering_platform/server_console_services.py,sha256=6Cltswnz8Va2Rzj76VsjHkWJ_s2SBTNxDCOcvRHji1w,137127
|
|
96
|
+
engineering_platform/server_relay.py,sha256=85BxUAcVq0EtGv-2yNk2T5rRkfZidA0V5INOOmoWuns,7401
|
|
97
|
+
engineering_platform/server_service.py,sha256=qiBxKABnCuCrnE6SqGKAyGIFtoPoX2WTcThXIkul9Rg,5164
|
|
98
|
+
engineering_platform/status_model.py,sha256=WRnWZolzZkuCU-u5xlyTugIas1Zmir2znr80-r06GOU,5250
|
|
99
|
+
engineering_platform/status_reconciliation.py,sha256=_-DZjUzH_wEz2HXH-xSmi3QcGeHNVbLlt7XlZX8YtVk,1304
|
|
100
|
+
engineering_platform/storage.py,sha256=mu9VYoou4Ke3OkgUXO4rK4Jwsh3U409DEJpNGGUsgvU,121727
|
|
101
|
+
engineering_platform/submission_cli.py,sha256=TZ_H2zbRAkYzauiTY_Yj4fTn0QiFOZWsAEDkVWeXIPA,3342
|
|
102
|
+
engineering_platform/submission_intake.py,sha256=KddWVPynIsZuP1jUzXqfvYHXAim8JGC_ktUMS8daHXk,2198
|
|
103
|
+
engineering_platform/submission_service.py,sha256=_9GPoPMQYkIRMHyAZlH__hJO32ydHuQWB1JPkl8pOqs,15848
|
|
104
|
+
engineering_platform/telemetry.py,sha256=HoD7YnTt5RdXeiU9PEpWgjL3SNS7cDAQ6Zdl_hPiLJA,47565
|
|
105
|
+
engineering_platform/validation_identity.py,sha256=OU6biWUKZJLJjbMTpJxDOSwPXHuzg1fzIbmgjeVWS64,1899
|
|
106
|
+
engineering_platform/validation_profile.py,sha256=6mzww-eI27XHPvT6luFg2K5QnN_AGUgT4qarmBEBJrQ,10331
|
|
107
|
+
engineering_platform/workspace_preflight.py,sha256=9XgjuP432Zzy21GtxP6LUxbc36Zye0GN35larHMCWbE,14277
|
|
108
|
+
engineering_platform/worktree_provenance.py,sha256=P9h4vfTgx2Z-1_Cr9ljwy4zzy3JdAu38Olx74swdqhs,6268
|
|
109
|
+
engineering_platform/worktree_tooling.py,sha256=sr7i-MPJ068VHna67HiLoQxhxXb9pVqWStFy-QfS7KY,832
|
|
110
|
+
engineering_platform/assets/dashboard.css,sha256=Tc7qPTTTM1E2_jIjq0NEK6jbxc_CGnI5rJrVhnRz1qQ,235221
|
|
111
|
+
engineering_platform/assets/dashboard.js,sha256=tmsUhDmk8U2hjC-ZY7zwjjanAFVMLjwX-baqU-vKYzY,396417
|
|
112
|
+
engineering_platform/assets/dashboard_locales.mjs,sha256=2F4BrfqYDZtYNfR3NFWBi3FR5R3q1gOqRVQUF5tQBsQ,547623
|
|
113
|
+
engineering_platform/assets/dashboard_status_store.mjs,sha256=J6BBcW_UwNhCXgLkf8G7iAoFKRFyeK0GF7ZWBnwuIB8,1600
|
|
114
|
+
engineering_platform/assets/operations-console/apple-touch-icon-dark.png,sha256=Fz26iw9_6O8zu1vjWkYU9hBXvcGTFvzgpPqQmx2fPKI,26555
|
|
115
|
+
engineering_platform/assets/operations-console/apple-touch-icon-light.png,sha256=mzbimVOH1VHxTGlRf_oMWD3YxiWnnjaS7vQIwt_ijk8,11207
|
|
116
|
+
engineering_platform/assets/operations-console/icon-dark.png,sha256=F6uVtXdWhY2AgckjJX0uSYa9xb53dOa9KcHNsRkyWhI,903180
|
|
117
|
+
engineering_platform/assets/operations-console/icon-light.png,sha256=GkopKgPTSpUMpWI1l6fe3UgGtOEgeuy47x89aLmJR-U,281522
|
|
118
|
+
engineering_platform/assets/operations-console/icon-transparent.png,sha256=4_ev7flkf58vwWv6oyZm6IgxRc1YDNJnJWM0VaoTWHo,1131951
|
|
119
|
+
engineering_platform/assets/operations-console/manifest.webmanifest,sha256=3YfTHUmuBDf7Al_yJ02GKd4wnoaC8eIQ1D_RThDrPEA,405
|
|
120
|
+
engineering_platform/contracts/__init__.py,sha256=sXIY_qOWw6MBIo-AElptmraxCzZRUX_uKiC-pD-YMrQ,993
|
|
121
|
+
engineering_platform/contracts/ep_consumer.py,sha256=Gtab_4E98xC7TP2-8-gqiPDNPo6OM3vZhHaLHWos2Io,15137
|
|
122
|
+
engineering_platform/contracts/models.py,sha256=Dtfem_Vq-rnNp8hYWYeIxOiFah-UZCCyYXXtbIqVl90,3275
|
|
123
|
+
engineering_platform/contracts/projection.py,sha256=6ZcgUW7qOF04GOS6k4ja8Am6TPye35RFX1Vt5e-D2D4,28743
|
|
124
|
+
engineering_platform/schemas/repository-attachment.schema.json,sha256=RHj0bud74NpD-Y1nwt9f5mAzhfW-mFckrWhmjC8hsj4,2666
|
|
125
|
+
engineering_platform/templates/workspace-config.json,sha256=cp63wOzNeP7P7HGSTyY34EuY1v5iTQMOkxp74LTH2rE,934
|
|
126
|
+
engineering_platform-2.2.0.dist-info/METADATA,sha256=48PPofqlOct9lhiwNPQAPkwxXU4fW6VMT1FEFGu0ak8,662
|
|
127
|
+
engineering_platform-2.2.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
128
|
+
engineering_platform-2.2.0.dist-info/entry_points.txt,sha256=GDpiCgUcGw5pIdn0w5m9YmSleKZWWWMXFPEHC25SEm8,340
|
|
129
|
+
engineering_platform-2.2.0.dist-info/top_level.txt,sha256=AoSSMio094OIREhVkM2Q-fh6K9i-tKX76sQl7QzfgSw,21
|
|
130
|
+
engineering_platform-2.2.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
engineering-execution-host = engineering_platform.__main__:main
|
|
3
|
+
engineering-platform = engineering_platform.submission_cli:main
|
|
4
|
+
engineering-platform-host = engineering_platform.__main__:main
|
|
5
|
+
engineering-platform-server = engineering_platform.server:main
|
|
6
|
+
engineering-project-agent = engineering_platform.project_agent:main
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
engineering_platform
|