nexus-certify 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. nexus_certify-0.1.0/PKG-INFO +128 -0
  2. nexus_certify-0.1.0/README.md +118 -0
  3. nexus_certify-0.1.0/nexus_certify.egg-info/PKG-INFO +128 -0
  4. nexus_certify-0.1.0/nexus_certify.egg-info/SOURCES.txt +49 -0
  5. nexus_certify-0.1.0/nexus_certify.egg-info/dependency_links.txt +1 -0
  6. nexus_certify-0.1.0/nexus_certify.egg-info/entry_points.txt +2 -0
  7. nexus_certify-0.1.0/nexus_certify.egg-info/requires.txt +2 -0
  8. nexus_certify-0.1.0/nexus_certify.egg-info/top_level.txt +1 -0
  9. nexus_certify-0.1.0/product/__init__.py +1 -0
  10. nexus_certify-0.1.0/product/acquisition/__init__.py +29 -0
  11. nexus_certify-0.1.0/product/acquisition/github.py +400 -0
  12. nexus_certify-0.1.0/product/adapters/__init__.py +1 -0
  13. nexus_certify-0.1.0/product/adapters/changeset_certification_v2.py +1006 -0
  14. nexus_certify-0.1.0/product/adapters/generic_verification.py +429 -0
  15. nexus_certify-0.1.0/product/adapters/github.py +274 -0
  16. nexus_certify-0.1.0/product/adapters/legacy.py +34 -0
  17. nexus_certify-0.1.0/product/adapters/trusted.py +593 -0
  18. nexus_certify-0.1.0/product/benchmark/__init__.py +1500 -0
  19. nexus_certify-0.1.0/product/benchmark/tg7_shadow.py +70 -0
  20. nexus_certify-0.1.0/product/benchmark/tg7_shadow_kernel.py +999 -0
  21. nexus_certify-0.1.0/product/benchmark/tg9_value.py +1217 -0
  22. nexus_certify-0.1.0/product/certification/__init__.py +83 -0
  23. nexus_certify-0.1.0/product/certification/receipt.py +520 -0
  24. nexus_certify-0.1.0/product/clients/__init__.py +15 -0
  25. nexus_certify-0.1.0/product/clients/cli.py +421 -0
  26. nexus_certify-0.1.0/product/clients/github_action.py +312 -0
  27. nexus_certify-0.1.0/product/clients/local_golden_path.py +835 -0
  28. nexus_certify-0.1.0/product/clients/mcp.py +159 -0
  29. nexus_certify-0.1.0/product/completion/__init__.py +550 -0
  30. nexus_certify-0.1.0/product/evidence/__init__.py +909 -0
  31. nexus_certify-0.1.0/product/evidence/code_integrity.py +824 -0
  32. nexus_certify-0.1.0/product/evidence/ingestion.py +2472 -0
  33. nexus_certify-0.1.0/product/execution/__init__.py +39 -0
  34. nexus_certify-0.1.0/product/execution/profiles/__init__.py +1 -0
  35. nexus_certify-0.1.0/product/execution/profiles/python-oci-pytest-v1.json +1 -0
  36. nexus_certify-0.1.0/product/execution/profiles/python-oci-pytest-v1.lock +1 -0
  37. nexus_certify-0.1.0/product/execution/python_runner.py +732 -0
  38. nexus_certify-0.1.0/product/kernel/__init__.py +176 -0
  39. nexus_certify-0.1.0/product/ledger.py +1068 -0
  40. nexus_certify-0.1.0/product/protocol/__init__.py +17 -0
  41. nexus_certify-0.1.0/product/protocol/compatibility_gate.py +163 -0
  42. nexus_certify-0.1.0/product/protocol/compatibility_gate_kernel.py +1205 -0
  43. nexus_certify-0.1.0/product/protocol/generic_verification.py +866 -0
  44. nexus_certify-0.1.0/product/runtime/__init__.py +61 -0
  45. nexus_certify-0.1.0/product/runtime/auth.py +205 -0
  46. nexus_certify-0.1.0/product/runtime/http.py +379 -0
  47. nexus_certify-0.1.0/product/runtime/schemas.py +374 -0
  48. nexus_certify-0.1.0/product/runtime/service.py +763 -0
  49. nexus_certify-0.1.0/product/verification/__init__.py +207 -0
  50. nexus_certify-0.1.0/pyproject.toml +61 -0
  51. nexus_certify-0.1.0/setup.cfg +4 -0
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.4
2
+ Name: nexus-certify
3
+ Version: 0.1.0
4
+ Summary: Nexus Evidence Trust Core and Completion Core
5
+ License: Apache-2.0
6
+ Requires-Python: >=3.11
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: aiohttp>=3.9.0
9
+ Requires-Dist: PyGithub>=2.1.0
10
+
11
+ # Nexus Core
12
+
13
+ Nexus Core is the standalone Evidence-to-Claim Completion Certification implementation extracted from Nexus-new.
14
+
15
+ Its truth authorities are Evidence Trust Core and Completion Core.
16
+
17
+ ## Scope
18
+
19
+ - **Evidence Trust Core**: Ingestion, normalization, verification, and tamper detection of execution evidence.
20
+ - **Completion Core**: ChangeSet certification, deterministic verification reduction, and disposition enforcement.
21
+
22
+ It provides the standalone `nexus-certify` CLI and HTTP/deterministic runtime interfaces.
23
+
24
+ ## Local Golden Path
25
+
26
+ An external Python Git repository can verify a committed or dirty change without
27
+ running the HTTP service or hand-authoring protocol JSON:
28
+
29
+ The public distribution identity is `nexus-certify`. Until the release gate
30
+ publishes a versioned artifact, install the candidate source or locally built wheel
31
+ in a development environment. After an authorized public release, the supported
32
+ registry install command is `python -m pip install nexus-certify`.
33
+
34
+ ```bash
35
+ nexus-certify init --base-ref main --allow 'src/**' --allow 'tests/**' \
36
+ --verifier python -m pytest -q
37
+ nexus-certify doctor
38
+ nexus-certify check
39
+ ```
40
+
41
+ The local shell derives real Git object identities and the canonical manifest,
42
+ runs the configured verifier, delegates the verdict to the existing generic Core
43
+ adapter, and persists a verification receipt under `.nexus-core/receipts/`.
44
+ `VERIFIED` remains distinct from `CERTIFIED`; the local receipt is not a
45
+ Certification receipt or merge/release authority.
46
+
47
+ See [Local Golden Path Contract](docs/LOCAL_GOLDEN_PATH.md) for the exact config,
48
+ negative controls, receipt validation contract, and the not-yet-executed G4
49
+ fresh-environment canary contract.
50
+
51
+ For trusted same-repository GitHub `push` and `pull_request` events on self-hosted
52
+ runners, see the [G2 GitHub Repository Golden Path](docs/GITHUB_REPOSITORY_CHECK.md).
53
+ Fork PRs and GitHub-hosted runners are explicitly unsupported by that path.
54
+
55
+ ## Generic ChangeSet Verification (experimental)
56
+
57
+ The loopback HTTP runtime also exposes a transport-neutral, non-GitHub verification seam for bounded consumers such as DevSpace or Open SWE:
58
+
59
+ - `GET /v1/protocol/generic-verification` — authenticated protocol descriptor, JSON schemas, canonicalization rules, schema-bundle hash, and cross-language conformance vectors.
60
+ - `POST /v1/changesets/verify` — deterministic `AcceptanceContract + ChangeSet + VerificationPlan + EvidenceBundle` verification. Certification is optional and occurs only when the caller supplies explicit policy facts.
61
+
62
+ Generic revision identities are typed as `git-commit:<40-lowercase-hex>` or `git-tree:<40-lowercase-hex>`. An uncommitted managed change may therefore be verified against a deterministic Git tree without creating a commit first. The generic `diff_hash` binds a canonical source-tree-to-target-tree manifest instead of pretty-patch formatting.
63
+
64
+ `verification=VERIFIED` does not imply `CERTIFIED`, Candidate acceptance, merge authorization, release, deployment, or production readiness. This interface does not select execution lanes, workers, models, routes, or workspaces.
65
+
66
+ ## Completion Evidence Applicability and Freshness Contract
67
+
68
+ `product.completion` is an additive Completion Core capability that binds a
69
+ completion claim to the exact source/artifact state it claims, then decides
70
+ whether verification evidence actually applies to that final state. It is
71
+ deterministic, model-independent, and advisory: the completion claim's
72
+ `asserted_by` identity never confers authority, and certification remains with
73
+ `product.kernel.certify`.
74
+
75
+ It derives three explicit semantic states:
76
+
77
+ - `CLAIMS_COMPLETE` — a completion claim is present, revision-bound to the
78
+ change set's `target_revision`, and covers every changed non-deleted path
79
+ with a claimed final content hash.
80
+ - `VERIFICATION_APPLIES` — every required verifier has an evidence observation
81
+ that is bound to a changed path, observes the claimed final content hash
82
+ (freshness by content-hash comparison), and reports `PASS`.
83
+ - `CLAIMS_VERIFIED` — the conjunction of the two states above with the existing
84
+ deterministic `verify()` reduction. A claim assertion can never substitute
85
+ for a physical observation.
86
+
87
+ Per-verifier `EvidenceDisposition` values (`ACCEPTED`, `REJECTED_STALE`,
88
+ `REJECTED_IRRELEVANT`, `REJECTED_MISSING`, `REJECTED_CONTRADICTORY`,
89
+ `REJECTED_FAILED`) let Completion Core explain exactly which evidence was
90
+ accepted, rejected, stale, missing, or contradictory. Original API:
91
+
92
+ ```python
93
+ from product.completion import analyze_completion_evidence, validate_completion_evidence_analysis
94
+
95
+ analysis = analyze_completion_evidence(claim, contract, change_set, plan, evidence)
96
+ assert analysis.claims_verified # all three states
97
+ assert validate_completion_evidence_analysis(analysis, claim, contract, change_set, plan, evidence)
98
+ ```
99
+
100
+ Freshness and execution ordering are derived from content hash comparison
101
+ rather than wall-clock timestamps: an observation whose artifact content hash
102
+ differs from the claimed final content hash predates a later mutation and is
103
+ stale unless the hashes are equal (equivalence proven by the trusted hash
104
+ machinery). See `tests/product/test_completion_evidence_applicability.py` for
105
+ the `modify -> test PASS -> modify again` and irrelevant-verification
106
+ regressions.
107
+
108
+ ## Development
109
+
110
+ ```bash
111
+ uv sync
112
+ uv run pytest -q tests/product
113
+ uv run pytest -q tests/benchmark
114
+ uv run ruff check product tests
115
+ uv run nexus-certify --help
116
+ ```
117
+
118
+ ## Compatibility and Coexistence Boundary
119
+
120
+ `nexus-core` and the current `nexus-legacy` package in `Nexus-new` have distinct package and console-script ownership:
121
+
122
+ - Nexus Core is distributed as `nexus-certify` while continuing to own the
123
+ internal `product` Python package and `nexus-certify` console script.
124
+ - `nexus-legacy` owns the `nexus` and `scripts` packages and the `nexus` console script.
125
+
126
+ The current package definitions therefore no longer have the historical `product` namespace / `nexus-certify` console-script collision described by the previous README.
127
+
128
+ Use separate virtual environments for normal development and testing because the repositories have different dependency sets and operational roles. That isolation is development hygiene, not a requirement caused by the retired namespace/script collision.
@@ -0,0 +1,118 @@
1
+ # Nexus Core
2
+
3
+ Nexus Core is the standalone Evidence-to-Claim Completion Certification implementation extracted from Nexus-new.
4
+
5
+ Its truth authorities are Evidence Trust Core and Completion Core.
6
+
7
+ ## Scope
8
+
9
+ - **Evidence Trust Core**: Ingestion, normalization, verification, and tamper detection of execution evidence.
10
+ - **Completion Core**: ChangeSet certification, deterministic verification reduction, and disposition enforcement.
11
+
12
+ It provides the standalone `nexus-certify` CLI and HTTP/deterministic runtime interfaces.
13
+
14
+ ## Local Golden Path
15
+
16
+ An external Python Git repository can verify a committed or dirty change without
17
+ running the HTTP service or hand-authoring protocol JSON:
18
+
19
+ The public distribution identity is `nexus-certify`. Until the release gate
20
+ publishes a versioned artifact, install the candidate source or locally built wheel
21
+ in a development environment. After an authorized public release, the supported
22
+ registry install command is `python -m pip install nexus-certify`.
23
+
24
+ ```bash
25
+ nexus-certify init --base-ref main --allow 'src/**' --allow 'tests/**' \
26
+ --verifier python -m pytest -q
27
+ nexus-certify doctor
28
+ nexus-certify check
29
+ ```
30
+
31
+ The local shell derives real Git object identities and the canonical manifest,
32
+ runs the configured verifier, delegates the verdict to the existing generic Core
33
+ adapter, and persists a verification receipt under `.nexus-core/receipts/`.
34
+ `VERIFIED` remains distinct from `CERTIFIED`; the local receipt is not a
35
+ Certification receipt or merge/release authority.
36
+
37
+ See [Local Golden Path Contract](docs/LOCAL_GOLDEN_PATH.md) for the exact config,
38
+ negative controls, receipt validation contract, and the not-yet-executed G4
39
+ fresh-environment canary contract.
40
+
41
+ For trusted same-repository GitHub `push` and `pull_request` events on self-hosted
42
+ runners, see the [G2 GitHub Repository Golden Path](docs/GITHUB_REPOSITORY_CHECK.md).
43
+ Fork PRs and GitHub-hosted runners are explicitly unsupported by that path.
44
+
45
+ ## Generic ChangeSet Verification (experimental)
46
+
47
+ The loopback HTTP runtime also exposes a transport-neutral, non-GitHub verification seam for bounded consumers such as DevSpace or Open SWE:
48
+
49
+ - `GET /v1/protocol/generic-verification` — authenticated protocol descriptor, JSON schemas, canonicalization rules, schema-bundle hash, and cross-language conformance vectors.
50
+ - `POST /v1/changesets/verify` — deterministic `AcceptanceContract + ChangeSet + VerificationPlan + EvidenceBundle` verification. Certification is optional and occurs only when the caller supplies explicit policy facts.
51
+
52
+ Generic revision identities are typed as `git-commit:<40-lowercase-hex>` or `git-tree:<40-lowercase-hex>`. An uncommitted managed change may therefore be verified against a deterministic Git tree without creating a commit first. The generic `diff_hash` binds a canonical source-tree-to-target-tree manifest instead of pretty-patch formatting.
53
+
54
+ `verification=VERIFIED` does not imply `CERTIFIED`, Candidate acceptance, merge authorization, release, deployment, or production readiness. This interface does not select execution lanes, workers, models, routes, or workspaces.
55
+
56
+ ## Completion Evidence Applicability and Freshness Contract
57
+
58
+ `product.completion` is an additive Completion Core capability that binds a
59
+ completion claim to the exact source/artifact state it claims, then decides
60
+ whether verification evidence actually applies to that final state. It is
61
+ deterministic, model-independent, and advisory: the completion claim's
62
+ `asserted_by` identity never confers authority, and certification remains with
63
+ `product.kernel.certify`.
64
+
65
+ It derives three explicit semantic states:
66
+
67
+ - `CLAIMS_COMPLETE` — a completion claim is present, revision-bound to the
68
+ change set's `target_revision`, and covers every changed non-deleted path
69
+ with a claimed final content hash.
70
+ - `VERIFICATION_APPLIES` — every required verifier has an evidence observation
71
+ that is bound to a changed path, observes the claimed final content hash
72
+ (freshness by content-hash comparison), and reports `PASS`.
73
+ - `CLAIMS_VERIFIED` — the conjunction of the two states above with the existing
74
+ deterministic `verify()` reduction. A claim assertion can never substitute
75
+ for a physical observation.
76
+
77
+ Per-verifier `EvidenceDisposition` values (`ACCEPTED`, `REJECTED_STALE`,
78
+ `REJECTED_IRRELEVANT`, `REJECTED_MISSING`, `REJECTED_CONTRADICTORY`,
79
+ `REJECTED_FAILED`) let Completion Core explain exactly which evidence was
80
+ accepted, rejected, stale, missing, or contradictory. Original API:
81
+
82
+ ```python
83
+ from product.completion import analyze_completion_evidence, validate_completion_evidence_analysis
84
+
85
+ analysis = analyze_completion_evidence(claim, contract, change_set, plan, evidence)
86
+ assert analysis.claims_verified # all three states
87
+ assert validate_completion_evidence_analysis(analysis, claim, contract, change_set, plan, evidence)
88
+ ```
89
+
90
+ Freshness and execution ordering are derived from content hash comparison
91
+ rather than wall-clock timestamps: an observation whose artifact content hash
92
+ differs from the claimed final content hash predates a later mutation and is
93
+ stale unless the hashes are equal (equivalence proven by the trusted hash
94
+ machinery). See `tests/product/test_completion_evidence_applicability.py` for
95
+ the `modify -> test PASS -> modify again` and irrelevant-verification
96
+ regressions.
97
+
98
+ ## Development
99
+
100
+ ```bash
101
+ uv sync
102
+ uv run pytest -q tests/product
103
+ uv run pytest -q tests/benchmark
104
+ uv run ruff check product tests
105
+ uv run nexus-certify --help
106
+ ```
107
+
108
+ ## Compatibility and Coexistence Boundary
109
+
110
+ `nexus-core` and the current `nexus-legacy` package in `Nexus-new` have distinct package and console-script ownership:
111
+
112
+ - Nexus Core is distributed as `nexus-certify` while continuing to own the
113
+ internal `product` Python package and `nexus-certify` console script.
114
+ - `nexus-legacy` owns the `nexus` and `scripts` packages and the `nexus` console script.
115
+
116
+ The current package definitions therefore no longer have the historical `product` namespace / `nexus-certify` console-script collision described by the previous README.
117
+
118
+ Use separate virtual environments for normal development and testing because the repositories have different dependency sets and operational roles. That isolation is development hygiene, not a requirement caused by the retired namespace/script collision.
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.4
2
+ Name: nexus-certify
3
+ Version: 0.1.0
4
+ Summary: Nexus Evidence Trust Core and Completion Core
5
+ License: Apache-2.0
6
+ Requires-Python: >=3.11
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: aiohttp>=3.9.0
9
+ Requires-Dist: PyGithub>=2.1.0
10
+
11
+ # Nexus Core
12
+
13
+ Nexus Core is the standalone Evidence-to-Claim Completion Certification implementation extracted from Nexus-new.
14
+
15
+ Its truth authorities are Evidence Trust Core and Completion Core.
16
+
17
+ ## Scope
18
+
19
+ - **Evidence Trust Core**: Ingestion, normalization, verification, and tamper detection of execution evidence.
20
+ - **Completion Core**: ChangeSet certification, deterministic verification reduction, and disposition enforcement.
21
+
22
+ It provides the standalone `nexus-certify` CLI and HTTP/deterministic runtime interfaces.
23
+
24
+ ## Local Golden Path
25
+
26
+ An external Python Git repository can verify a committed or dirty change without
27
+ running the HTTP service or hand-authoring protocol JSON:
28
+
29
+ The public distribution identity is `nexus-certify`. Until the release gate
30
+ publishes a versioned artifact, install the candidate source or locally built wheel
31
+ in a development environment. After an authorized public release, the supported
32
+ registry install command is `python -m pip install nexus-certify`.
33
+
34
+ ```bash
35
+ nexus-certify init --base-ref main --allow 'src/**' --allow 'tests/**' \
36
+ --verifier python -m pytest -q
37
+ nexus-certify doctor
38
+ nexus-certify check
39
+ ```
40
+
41
+ The local shell derives real Git object identities and the canonical manifest,
42
+ runs the configured verifier, delegates the verdict to the existing generic Core
43
+ adapter, and persists a verification receipt under `.nexus-core/receipts/`.
44
+ `VERIFIED` remains distinct from `CERTIFIED`; the local receipt is not a
45
+ Certification receipt or merge/release authority.
46
+
47
+ See [Local Golden Path Contract](docs/LOCAL_GOLDEN_PATH.md) for the exact config,
48
+ negative controls, receipt validation contract, and the not-yet-executed G4
49
+ fresh-environment canary contract.
50
+
51
+ For trusted same-repository GitHub `push` and `pull_request` events on self-hosted
52
+ runners, see the [G2 GitHub Repository Golden Path](docs/GITHUB_REPOSITORY_CHECK.md).
53
+ Fork PRs and GitHub-hosted runners are explicitly unsupported by that path.
54
+
55
+ ## Generic ChangeSet Verification (experimental)
56
+
57
+ The loopback HTTP runtime also exposes a transport-neutral, non-GitHub verification seam for bounded consumers such as DevSpace or Open SWE:
58
+
59
+ - `GET /v1/protocol/generic-verification` — authenticated protocol descriptor, JSON schemas, canonicalization rules, schema-bundle hash, and cross-language conformance vectors.
60
+ - `POST /v1/changesets/verify` — deterministic `AcceptanceContract + ChangeSet + VerificationPlan + EvidenceBundle` verification. Certification is optional and occurs only when the caller supplies explicit policy facts.
61
+
62
+ Generic revision identities are typed as `git-commit:<40-lowercase-hex>` or `git-tree:<40-lowercase-hex>`. An uncommitted managed change may therefore be verified against a deterministic Git tree without creating a commit first. The generic `diff_hash` binds a canonical source-tree-to-target-tree manifest instead of pretty-patch formatting.
63
+
64
+ `verification=VERIFIED` does not imply `CERTIFIED`, Candidate acceptance, merge authorization, release, deployment, or production readiness. This interface does not select execution lanes, workers, models, routes, or workspaces.
65
+
66
+ ## Completion Evidence Applicability and Freshness Contract
67
+
68
+ `product.completion` is an additive Completion Core capability that binds a
69
+ completion claim to the exact source/artifact state it claims, then decides
70
+ whether verification evidence actually applies to that final state. It is
71
+ deterministic, model-independent, and advisory: the completion claim's
72
+ `asserted_by` identity never confers authority, and certification remains with
73
+ `product.kernel.certify`.
74
+
75
+ It derives three explicit semantic states:
76
+
77
+ - `CLAIMS_COMPLETE` — a completion claim is present, revision-bound to the
78
+ change set's `target_revision`, and covers every changed non-deleted path
79
+ with a claimed final content hash.
80
+ - `VERIFICATION_APPLIES` — every required verifier has an evidence observation
81
+ that is bound to a changed path, observes the claimed final content hash
82
+ (freshness by content-hash comparison), and reports `PASS`.
83
+ - `CLAIMS_VERIFIED` — the conjunction of the two states above with the existing
84
+ deterministic `verify()` reduction. A claim assertion can never substitute
85
+ for a physical observation.
86
+
87
+ Per-verifier `EvidenceDisposition` values (`ACCEPTED`, `REJECTED_STALE`,
88
+ `REJECTED_IRRELEVANT`, `REJECTED_MISSING`, `REJECTED_CONTRADICTORY`,
89
+ `REJECTED_FAILED`) let Completion Core explain exactly which evidence was
90
+ accepted, rejected, stale, missing, or contradictory. Original API:
91
+
92
+ ```python
93
+ from product.completion import analyze_completion_evidence, validate_completion_evidence_analysis
94
+
95
+ analysis = analyze_completion_evidence(claim, contract, change_set, plan, evidence)
96
+ assert analysis.claims_verified # all three states
97
+ assert validate_completion_evidence_analysis(analysis, claim, contract, change_set, plan, evidence)
98
+ ```
99
+
100
+ Freshness and execution ordering are derived from content hash comparison
101
+ rather than wall-clock timestamps: an observation whose artifact content hash
102
+ differs from the claimed final content hash predates a later mutation and is
103
+ stale unless the hashes are equal (equivalence proven by the trusted hash
104
+ machinery). See `tests/product/test_completion_evidence_applicability.py` for
105
+ the `modify -> test PASS -> modify again` and irrelevant-verification
106
+ regressions.
107
+
108
+ ## Development
109
+
110
+ ```bash
111
+ uv sync
112
+ uv run pytest -q tests/product
113
+ uv run pytest -q tests/benchmark
114
+ uv run ruff check product tests
115
+ uv run nexus-certify --help
116
+ ```
117
+
118
+ ## Compatibility and Coexistence Boundary
119
+
120
+ `nexus-core` and the current `nexus-legacy` package in `Nexus-new` have distinct package and console-script ownership:
121
+
122
+ - Nexus Core is distributed as `nexus-certify` while continuing to own the
123
+ internal `product` Python package and `nexus-certify` console script.
124
+ - `nexus-legacy` owns the `nexus` and `scripts` packages and the `nexus` console script.
125
+
126
+ The current package definitions therefore no longer have the historical `product` namespace / `nexus-certify` console-script collision described by the previous README.
127
+
128
+ Use separate virtual environments for normal development and testing because the repositories have different dependency sets and operational roles. That isolation is development hygiene, not a requirement caused by the retired namespace/script collision.
@@ -0,0 +1,49 @@
1
+ README.md
2
+ pyproject.toml
3
+ nexus_certify.egg-info/PKG-INFO
4
+ nexus_certify.egg-info/SOURCES.txt
5
+ nexus_certify.egg-info/dependency_links.txt
6
+ nexus_certify.egg-info/entry_points.txt
7
+ nexus_certify.egg-info/requires.txt
8
+ nexus_certify.egg-info/top_level.txt
9
+ product/__init__.py
10
+ product/ledger.py
11
+ product/acquisition/__init__.py
12
+ product/acquisition/github.py
13
+ product/adapters/__init__.py
14
+ product/adapters/changeset_certification_v2.py
15
+ product/adapters/generic_verification.py
16
+ product/adapters/github.py
17
+ product/adapters/legacy.py
18
+ product/adapters/trusted.py
19
+ product/benchmark/__init__.py
20
+ product/benchmark/tg7_shadow.py
21
+ product/benchmark/tg7_shadow_kernel.py
22
+ product/benchmark/tg9_value.py
23
+ product/certification/__init__.py
24
+ product/certification/receipt.py
25
+ product/clients/__init__.py
26
+ product/clients/cli.py
27
+ product/clients/github_action.py
28
+ product/clients/local_golden_path.py
29
+ product/clients/mcp.py
30
+ product/completion/__init__.py
31
+ product/evidence/__init__.py
32
+ product/evidence/code_integrity.py
33
+ product/evidence/ingestion.py
34
+ product/execution/__init__.py
35
+ product/execution/python_runner.py
36
+ product/execution/profiles/__init__.py
37
+ product/execution/profiles/python-oci-pytest-v1.json
38
+ product/execution/profiles/python-oci-pytest-v1.lock
39
+ product/kernel/__init__.py
40
+ product/protocol/__init__.py
41
+ product/protocol/compatibility_gate.py
42
+ product/protocol/compatibility_gate_kernel.py
43
+ product/protocol/generic_verification.py
44
+ product/runtime/__init__.py
45
+ product/runtime/auth.py
46
+ product/runtime/http.py
47
+ product/runtime/schemas.py
48
+ product/runtime/service.py
49
+ product/verification/__init__.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ nexus-certify = product.clients.cli:main
@@ -0,0 +1,2 @@
1
+ aiohttp>=3.9.0
2
+ PyGithub>=2.1.0
@@ -0,0 +1 @@
1
+ """Pure completion-certification product kernel."""
@@ -0,0 +1,29 @@
1
+ """Credential-free acquisition ports for externally owned source systems.
2
+
3
+ Acquisition is deliberately separate from :mod:`product.adapters`: ports are
4
+ injected by the controller and return already-authorized, read-only data.
5
+ """
6
+
7
+ from .github import (
8
+ AcquisitionError,
9
+ GitHubAcquisitionSnapshot,
10
+ GitHubPullRequestAcquisition,
11
+ GitHubPullRequestLocator,
12
+ GitHubReadPort,
13
+ acquire_github_pull_request,
14
+ acquire_pull_request,
15
+ load_github_acquisition_snapshot,
16
+ serialize_github_acquisition_snapshot,
17
+ )
18
+
19
+ __all__ = [
20
+ "AcquisitionError",
21
+ "GitHubAcquisitionSnapshot",
22
+ "GitHubPullRequestAcquisition",
23
+ "GitHubPullRequestLocator",
24
+ "GitHubReadPort",
25
+ "acquire_github_pull_request",
26
+ "acquire_pull_request",
27
+ "load_github_acquisition_snapshot",
28
+ "serialize_github_acquisition_snapshot",
29
+ ]