arcgraph 0.1.0rc7__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 (211) hide show
  1. arcgraph-0.1.0rc7/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
  2. arcgraph-0.1.0rc7/.github/ISSUE_TEMPLATE/config.yml +5 -0
  3. arcgraph-0.1.0rc7/.github/ISSUE_TEMPLATE/feature_request.md +24 -0
  4. arcgraph-0.1.0rc7/.github/PULL_REQUEST_TEMPLATE.md +19 -0
  5. arcgraph-0.1.0rc7/.github/dependabot.yml +59 -0
  6. arcgraph-0.1.0rc7/.github/workflows/ci.yml +285 -0
  7. arcgraph-0.1.0rc7/.gitignore +35 -0
  8. arcgraph-0.1.0rc7/CODE_OF_CONDUCT.md +113 -0
  9. arcgraph-0.1.0rc7/CONTRIBUTING.md +60 -0
  10. arcgraph-0.1.0rc7/LICENSE +203 -0
  11. arcgraph-0.1.0rc7/PKG-INFO +659 -0
  12. arcgraph-0.1.0rc7/README.md +620 -0
  13. arcgraph-0.1.0rc7/RELEASE_NOTES.md +14 -0
  14. arcgraph-0.1.0rc7/SECURITY.md +133 -0
  15. arcgraph-0.1.0rc7/SUPPORT.md +33 -0
  16. arcgraph-0.1.0rc7/arcgraph/__init__.py +41 -0
  17. arcgraph-0.1.0rc7/arcgraph/_build_provenance.json +10 -0
  18. arcgraph-0.1.0rc7/arcgraph/adapters/__init__.py +6 -0
  19. arcgraph-0.1.0rc7/arcgraph/adapters/arq_adapter.py +369 -0
  20. arcgraph-0.1.0rc7/arcgraph/adapters/celery_adapter.py +440 -0
  21. arcgraph-0.1.0rc7/arcgraph/adapters/common.py +436 -0
  22. arcgraph-0.1.0rc7/arcgraph/adapters/django_adapter.py +765 -0
  23. arcgraph-0.1.0rc7/arcgraph/adapters/fastapi_adapter.py +415 -0
  24. arcgraph-0.1.0rc7/arcgraph/adapters/logging_adapter.py +335 -0
  25. arcgraph-0.1.0rc7/arcgraph/adapters/mcp_adapter.py +100 -0
  26. arcgraph-0.1.0rc7/arcgraph/adapters/pydantic_adapter.py +290 -0
  27. arcgraph-0.1.0rc7/arcgraph/adapters/pytest_adapter.py +221 -0
  28. arcgraph-0.1.0rc7/arcgraph/adapters/pytest_collection.py +96 -0
  29. arcgraph-0.1.0rc7/arcgraph/adapters/pytest_fixtures.py +371 -0
  30. arcgraph-0.1.0rc7/arcgraph/adapters/pytest_types.py +251 -0
  31. arcgraph-0.1.0rc7/arcgraph/adapters/registry.py +34 -0
  32. arcgraph-0.1.0rc7/arcgraph/adapters/service_container_adapter.py +548 -0
  33. arcgraph-0.1.0rc7/arcgraph/adapters/sqlalchemy_adapter.py +446 -0
  34. arcgraph-0.1.0rc7/arcgraph/adapters/typer_click_adapter.py +292 -0
  35. arcgraph-0.1.0rc7/arcgraph/analyzers/__init__.py +1 -0
  36. arcgraph-0.1.0rc7/arcgraph/analyzers/bindings.py +782 -0
  37. arcgraph-0.1.0rc7/arcgraph/analyzers/calls/__init__.py +6 -0
  38. arcgraph-0.1.0rc7/arcgraph/analyzers/calls/analyzer.py +2921 -0
  39. arcgraph-0.1.0rc7/arcgraph/analyzers/calls/constants.py +702 -0
  40. arcgraph-0.1.0rc7/arcgraph/analyzers/calls/context.py +298 -0
  41. arcgraph-0.1.0rc7/arcgraph/analyzers/calls/lexical.py +237 -0
  42. arcgraph-0.1.0rc7/arcgraph/analyzers/coverage.py +826 -0
  43. arcgraph-0.1.0rc7/arcgraph/analyzers/exports.py +46 -0
  44. arcgraph-0.1.0rc7/arcgraph/analyzers/har_trace.py +323 -0
  45. arcgraph-0.1.0rc7/arcgraph/analyzers/imports.py +190 -0
  46. arcgraph-0.1.0rc7/arcgraph/analyzers/otel_trace.py +352 -0
  47. arcgraph-0.1.0rc7/arcgraph/analyzers/precise_references.py +1199 -0
  48. arcgraph-0.1.0rc7/arcgraph/analyzers/python_scopes.py +56 -0
  49. arcgraph-0.1.0rc7/arcgraph/analyzers/runtime_trace.py +516 -0
  50. arcgraph-0.1.0rc7/arcgraph/analyzers/similarity.py +430 -0
  51. arcgraph-0.1.0rc7/arcgraph/analyzers/symbols.py +363 -0
  52. arcgraph-0.1.0rc7/arcgraph/analyzers/type_unions.py +89 -0
  53. arcgraph-0.1.0rc7/arcgraph/analyzers/types.py +2211 -0
  54. arcgraph-0.1.0rc7/arcgraph/assets/__init__.py +1 -0
  55. arcgraph-0.1.0rc7/arcgraph/assets/workbench/__init__.py +1 -0
  56. arcgraph-0.1.0rc7/arcgraph/assets/workbench/index.html +2398 -0
  57. arcgraph-0.1.0rc7/arcgraph/assets/workbench/vendor/LICENSE.d3.txt +15 -0
  58. arcgraph-0.1.0rc7/arcgraph/assets/workbench/vendor/d3.v7.min.js +2 -0
  59. arcgraph-0.1.0rc7/arcgraph/change/__init__.py +10 -0
  60. arcgraph-0.1.0rc7/arcgraph/change/baseline.py +145 -0
  61. arcgraph-0.1.0rc7/arcgraph/change/changed_regions.py +728 -0
  62. arcgraph-0.1.0rc7/arcgraph/change/contracts.py +927 -0
  63. arcgraph-0.1.0rc7/arcgraph/change/errors.py +88 -0
  64. arcgraph-0.1.0rc7/arcgraph/change/evidence.py +289 -0
  65. arcgraph-0.1.0rc7/arcgraph/change/graph_delta.py +1422 -0
  66. arcgraph-0.1.0rc7/arcgraph/change/identities.py +1277 -0
  67. arcgraph-0.1.0rc7/arcgraph/change/paths.py +213 -0
  68. arcgraph-0.1.0rc7/arcgraph/change/pins.py +420 -0
  69. arcgraph-0.1.0rc7/arcgraph/change/planner.py +504 -0
  70. arcgraph-0.1.0rc7/arcgraph/change/protected_surfaces.py +328 -0
  71. arcgraph-0.1.0rc7/arcgraph/change/provider.py +46 -0
  72. arcgraph-0.1.0rc7/arcgraph/change/service.py +999 -0
  73. arcgraph-0.1.0rc7/arcgraph/change/source_provider.py +311 -0
  74. arcgraph-0.1.0rc7/arcgraph/change/store.py +1113 -0
  75. arcgraph-0.1.0rc7/arcgraph/change/trusted_runners.py +154 -0
  76. arcgraph-0.1.0rc7/arcgraph/change/verdicts.py +141 -0
  77. arcgraph-0.1.0rc7/arcgraph/change/verification_plan.py +113 -0
  78. arcgraph-0.1.0rc7/arcgraph/change/verifier.py +579 -0
  79. arcgraph-0.1.0rc7/arcgraph/core/__init__.py +1 -0
  80. arcgraph-0.1.0rc7/arcgraph/core/assurance.py +343 -0
  81. arcgraph-0.1.0rc7/arcgraph/core/binding_metrics.py +75 -0
  82. arcgraph-0.1.0rc7/arcgraph/core/cleanup.py +695 -0
  83. arcgraph-0.1.0rc7/arcgraph/core/confidence_profiles.py +108 -0
  84. arcgraph-0.1.0rc7/arcgraph/core/evidence_manifest.py +867 -0
  85. arcgraph-0.1.0rc7/arcgraph/core/expression_kinds.py +11 -0
  86. arcgraph-0.1.0rc7/arcgraph/core/force_graph_export.py +1125 -0
  87. arcgraph-0.1.0rc7/arcgraph/core/freshness.py +94 -0
  88. arcgraph-0.1.0rc7/arcgraph/core/graph_store.py +1038 -0
  89. arcgraph-0.1.0rc7/arcgraph/core/ids.py +206 -0
  90. arcgraph-0.1.0rc7/arcgraph/core/language_tiers.py +150 -0
  91. arcgraph-0.1.0rc7/arcgraph/core/merge.py +649 -0
  92. arcgraph-0.1.0rc7/arcgraph/core/metadata.py +28 -0
  93. arcgraph-0.1.0rc7/arcgraph/core/operation_lock.py +218 -0
  94. arcgraph-0.1.0rc7/arcgraph/core/passes.py +142 -0
  95. arcgraph-0.1.0rc7/arcgraph/core/payload_policy.py +708 -0
  96. arcgraph-0.1.0rc7/arcgraph/core/precise_references.py +122 -0
  97. arcgraph-0.1.0rc7/arcgraph/core/query_engine.py +3078 -0
  98. arcgraph-0.1.0rc7/arcgraph/core/recovery.py +18 -0
  99. arcgraph-0.1.0rc7/arcgraph/core/scanner.py +1431 -0
  100. arcgraph-0.1.0rc7/arcgraph/core/schemas.py +700 -0
  101. arcgraph-0.1.0rc7/arcgraph/core/semantic.py +263 -0
  102. arcgraph-0.1.0rc7/arcgraph/core/semantic_metrics.py +619 -0
  103. arcgraph-0.1.0rc7/arcgraph/core/structural.py +260 -0
  104. arcgraph-0.1.0rc7/arcgraph/core/target_resolver.py +486 -0
  105. arcgraph-0.1.0rc7/arcgraph/core/type_metrics.py +67 -0
  106. arcgraph-0.1.0rc7/arcgraph/core/unresolved_classification.py +471 -0
  107. arcgraph-0.1.0rc7/arcgraph/core/utils.py +31 -0
  108. arcgraph-0.1.0rc7/arcgraph/core/visual_contract.py +240 -0
  109. arcgraph-0.1.0rc7/arcgraph/core/visual_slice_engine.py +933 -0
  110. arcgraph-0.1.0rc7/arcgraph/interfaces/__init__.py +1 -0
  111. arcgraph-0.1.0rc7/arcgraph/interfaces/agent_capabilities.py +493 -0
  112. arcgraph-0.1.0rc7/arcgraph/interfaces/agent_help.py +313 -0
  113. arcgraph-0.1.0rc7/arcgraph/interfaces/benchmark.py +546 -0
  114. arcgraph-0.1.0rc7/arcgraph/interfaces/ci.py +1992 -0
  115. arcgraph-0.1.0rc7/arcgraph/interfaces/cli.py +2794 -0
  116. arcgraph-0.1.0rc7/arcgraph/interfaces/cli_change.py +690 -0
  117. arcgraph-0.1.0rc7/arcgraph/interfaces/cli_feedback.py +176 -0
  118. arcgraph-0.1.0rc7/arcgraph/interfaces/cli_ops.py +69 -0
  119. arcgraph-0.1.0rc7/arcgraph/interfaces/cli_support.py +84 -0
  120. arcgraph-0.1.0rc7/arcgraph/interfaces/cli_trial.py +42 -0
  121. arcgraph-0.1.0rc7/arcgraph/interfaces/cli_visual.py +603 -0
  122. arcgraph-0.1.0rc7/arcgraph/interfaces/cli_workspace.py +300 -0
  123. arcgraph-0.1.0rc7/arcgraph/interfaces/client_setup.py +454 -0
  124. arcgraph-0.1.0rc7/arcgraph/interfaces/docs.py +1255 -0
  125. arcgraph-0.1.0rc7/arcgraph/interfaces/human_output.py +409 -0
  126. arcgraph-0.1.0rc7/arcgraph/interfaces/local_state.py +577 -0
  127. arcgraph-0.1.0rc7/arcgraph/interfaces/mcp_server.py +455 -0
  128. arcgraph-0.1.0rc7/arcgraph/interfaces/mcp_tools.py +1209 -0
  129. arcgraph-0.1.0rc7/arcgraph/interfaces/metrics.py +571 -0
  130. arcgraph-0.1.0rc7/arcgraph/interfaces/ops.py +330 -0
  131. arcgraph-0.1.0rc7/arcgraph/interfaces/precision.py +1670 -0
  132. arcgraph-0.1.0rc7/arcgraph/interfaces/project_probe.py +75 -0
  133. arcgraph-0.1.0rc7/arcgraph/interfaces/reports.py +1121 -0
  134. arcgraph-0.1.0rc7/arcgraph/interfaces/trace.py +592 -0
  135. arcgraph-0.1.0rc7/arcgraph/interfaces/trial_feedback.py +519 -0
  136. arcgraph-0.1.0rc7/arcgraph/interfaces/trial_setup.py +535 -0
  137. arcgraph-0.1.0rc7/arcgraph/interfaces/visual_server.py +354 -0
  138. arcgraph-0.1.0rc7/arcgraph/interfaces/visual_slice.py +168 -0
  139. arcgraph-0.1.0rc7/arcgraph/interfaces/visual_smoke.py +593 -0
  140. arcgraph-0.1.0rc7/arcgraph/interfaces/workbench.py +572 -0
  141. arcgraph-0.1.0rc7/arcgraph/interfaces/workspace.py +1513 -0
  142. arcgraph-0.1.0rc7/arcgraph/pipeline/__init__.py +1 -0
  143. arcgraph-0.1.0rc7/arcgraph/pipeline/contracts.py +122 -0
  144. arcgraph-0.1.0rc7/arcgraph/pipeline/external_frontend.py +449 -0
  145. arcgraph-0.1.0rc7/arcgraph/pipeline/external_l3_frontends.py +368 -0
  146. arcgraph-0.1.0rc7/arcgraph/pipeline/external_protocol.py +358 -0
  147. arcgraph-0.1.0rc7/arcgraph/pipeline/frontends.py +437 -0
  148. arcgraph-0.1.0rc7/arcgraph/pipeline/indexer.py +661 -0
  149. arcgraph-0.1.0rc7/arcgraph/pipeline/openapi_frontend.py +708 -0
  150. arcgraph-0.1.0rc7/arcgraph/pipeline/python_frontend.py +298 -0
  151. arcgraph-0.1.0rc7/arcgraph/pipeline/reindexer.py +1333 -0
  152. arcgraph-0.1.0rc7/arcgraph/pipeline/scip_frontend.py +726 -0
  153. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor/declarations.mjs +183 -0
  154. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor/edges.mjs +2794 -0
  155. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor/graph_primitives.mjs +189 -0
  156. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor/module_resolution.mjs +877 -0
  157. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor/runtime.mjs +56 -0
  158. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor/similarity.mjs +619 -0
  159. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor/similarity_runner.mjs +19 -0
  160. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor/sources.mjs +23 -0
  161. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_extractor.mjs +177 -0
  162. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_frameworks.py +947 -0
  163. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_frontend.py +654 -0
  164. arcgraph-0.1.0rc7/arcgraph/pipeline/typescript_references.mjs +167 -0
  165. arcgraph-0.1.0rc7/arcgraph/providers/__init__.py +27 -0
  166. arcgraph-0.1.0rc7/arcgraph/providers/context_provider.py +1258 -0
  167. arcgraph-0.1.0rc7/arcgraph/providers/flow_payload.py +117 -0
  168. arcgraph-0.1.0rc7/arcgraph/providers/memory_connector.py +216 -0
  169. arcgraph-0.1.0rc7/arcgraph/providers/orchestrator.py +475 -0
  170. arcgraph-0.1.0rc7/arcgraph/providers/relationship_payload.py +102 -0
  171. arcgraph-0.1.0rc7/arcgraph/providers/risk_provider.py +843 -0
  172. arcgraph-0.1.0rc7/arcgraph/providers/why_provider.py +349 -0
  173. arcgraph-0.1.0rc7/arcgraph/version_info.py +246 -0
  174. arcgraph-0.1.0rc7/docs/agent-reading-guide.md +771 -0
  175. arcgraph-0.1.0rc7/docs/architecture.md +33 -0
  176. arcgraph-0.1.0rc7/docs/change-preflight.md +98 -0
  177. arcgraph-0.1.0rc7/docs/change-safety.md +283 -0
  178. arcgraph-0.1.0rc7/docs/clean-checkout-smoke.md +102 -0
  179. arcgraph-0.1.0rc7/docs/client-setup.md +184 -0
  180. arcgraph-0.1.0rc7/docs/examples/agent-context.md +25 -0
  181. arcgraph-0.1.0rc7/docs/examples/evidence-inputs.md +58 -0
  182. arcgraph-0.1.0rc7/docs/examples/external-l3-payload.md +52 -0
  183. arcgraph-0.1.0rc7/docs/examples/impact-analysis.md +30 -0
  184. arcgraph-0.1.0rc7/docs/examples/mcp_readonly_host.py +89 -0
  185. arcgraph-0.1.0rc7/docs/examples/source-checkout-smoke.md +139 -0
  186. arcgraph-0.1.0rc7/docs/external-trial-guide.md +492 -0
  187. arcgraph-0.1.0rc7/docs/language-support.md +153 -0
  188. arcgraph-0.1.0rc7/docs/mcp-usage.md +272 -0
  189. arcgraph-0.1.0rc7/docs/package-readiness.md +47 -0
  190. arcgraph-0.1.0rc7/docs/provenance.md +25 -0
  191. arcgraph-0.1.0rc7/docs/release-tooling.md +49 -0
  192. arcgraph-0.1.0rc7/docs/release_notes/v0.1.0-rc7.md +135 -0
  193. arcgraph-0.1.0rc7/docs/runbook.md +313 -0
  194. arcgraph-0.1.0rc7/hatch_build.py +116 -0
  195. arcgraph-0.1.0rc7/package-lock.json +29 -0
  196. arcgraph-0.1.0rc7/package.json +14 -0
  197. arcgraph-0.1.0rc7/pyproject.toml +194 -0
  198. arcgraph-0.1.0rc7/scripts/arcgraph.py +23 -0
  199. arcgraph-0.1.0rc7/scripts/arcgraph_clean_checkout_smoke.py +547 -0
  200. arcgraph-0.1.0rc7/scripts/arcgraph_external_trial_bundle.py +1469 -0
  201. arcgraph-0.1.0rc7/scripts/arcgraph_mcp_protocol_probe.py +366 -0
  202. arcgraph-0.1.0rc7/scripts/arcgraph_multi_project_trial_probe.py +809 -0
  203. arcgraph-0.1.0rc7/scripts/arcgraph_package_readiness_smoke.py +2452 -0
  204. arcgraph-0.1.0rc7/scripts/arcgraph_release_candidate_check.py +859 -0
  205. arcgraph-0.1.0rc7/scripts/arcgraph_release_gate.py +447 -0
  206. arcgraph-0.1.0rc7/scripts/arcgraph_source_checkout_smoke.py +296 -0
  207. arcgraph-0.1.0rc7/scripts/arcgraph_trial_contract.py +25 -0
  208. arcgraph-0.1.0rc7/scripts/install-arcgraph-precision-tools.ps1 +180 -0
  209. arcgraph-0.1.0rc7/viz/.gitignore +1 -0
  210. arcgraph-0.1.0rc7/viz/extract_graph.py +112 -0
  211. arcgraph-0.1.0rc7/viz/index.html +66 -0
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: Bug report
3
+ about: Report a reproducible ArcGraph defect
4
+ title: "[Bug]: "
5
+ labels: bug
6
+ assignees: ""
7
+ ---
8
+
9
+ ## Summary
10
+
11
+ What happened?
12
+
13
+ ## Environment
14
+
15
+ - OS:
16
+ - Python version:
17
+ - Node/npm version, if TypeScript analysis is involved:
18
+ - ArcGraph commit or version:
19
+
20
+ ## Reproduction
21
+
22
+ ```powershell
23
+ # paste the smallest command sequence that reproduces the issue
24
+ ```
25
+
26
+ ## Expected Behavior
27
+
28
+ What did you expect?
29
+
30
+ ## Actual Behavior
31
+
32
+ What did ArcGraph print or produce?
33
+
34
+ ## Safety Check
35
+
36
+ Do not include secrets, private repository content, tokens, or sensitive source
37
+ snippets unless you have explicitly sanitized them.
38
+
39
+ Do not report a security vulnerability or credential exposure here. Follow the
40
+ private reporting path in SECURITY.md instead.
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Report a security vulnerability
4
+ url: https://github.com/glyphevo/arcgraph/blob/main/SECURITY.md
5
+ about: Do not open a public issue for a vulnerability or credential exposure. Follow the private reporting path in SECURITY.md.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: Feature request
3
+ about: Propose a scoped ArcGraph improvement
4
+ title: "[Feature]: "
5
+ labels: enhancement
6
+ assignees: ""
7
+ ---
8
+
9
+ ## Problem
10
+
11
+ What workflow or evidence gap should this improve?
12
+
13
+ ## Proposed Capability
14
+
15
+ What should ArcGraph do?
16
+
17
+ ## Current Workaround
18
+
19
+ How do you handle this today?
20
+
21
+ ## Boundaries
22
+
23
+ Does this require package publishing, public MCP distribution, network services,
24
+ or production-readiness claims? If so, call that out explicitly.
@@ -0,0 +1,19 @@
1
+ ## Summary
2
+
3
+ -
4
+
5
+ ## Validation
6
+
7
+ - [ ] `python -m pytest arcgraph\tests scripts\tests -q`
8
+ - [ ] `python -m black arcgraph scripts --check`
9
+ - [ ] `python -m ruff check arcgraph scripts`
10
+ - [ ] `python scripts\arcgraph.py ci`
11
+
12
+ ## Public-Safe Checklist
13
+
14
+ - [ ] No generated artifacts, `dist`, `node_modules`, caches, or smoke outputs
15
+ are committed.
16
+ - [ ] No secrets, private repository contents, or local process notes are
17
+ included.
18
+ - [ ] Documentation does not claim production readiness, stable APIs, public
19
+ package publishing, or public MCP distribution unless separately approved.
@@ -0,0 +1,59 @@
1
+ version: 2
2
+
3
+ updates:
4
+ - package-ecosystem: pip
5
+ directory: /
6
+ schedule:
7
+ interval: weekly
8
+ day: monday
9
+ time: '09:00'
10
+ timezone: Etc/UTC
11
+ groups:
12
+ python-dependencies:
13
+ patterns:
14
+ - '*'
15
+ ignore:
16
+ # Ruff 0.x minor releases can be breaking. Keep the reviewed upper bound
17
+ # until a dedicated migration updates the rule policy and codebase.
18
+ - dependency-name: ruff
19
+ versions:
20
+ - '>=0.16.0'
21
+ open-pull-requests-limit: 5
22
+ commit-message:
23
+ prefix: deps
24
+
25
+ - package-ecosystem: npm
26
+ directory: /
27
+ schedule:
28
+ interval: weekly
29
+ day: monday
30
+ time: '09:00'
31
+ timezone: Etc/UTC
32
+ groups:
33
+ npm-dependencies:
34
+ patterns:
35
+ - '*'
36
+ ignore:
37
+ # ArcGraph consumes the TypeScript compiler API. Major upgrades require
38
+ # an explicit compatibility review before Dependabot may propose them.
39
+ - dependency-name: typescript
40
+ update-types:
41
+ - version-update:semver-major
42
+ open-pull-requests-limit: 5
43
+ commit-message:
44
+ prefix: deps
45
+
46
+ - package-ecosystem: github-actions
47
+ directory: /
48
+ schedule:
49
+ interval: weekly
50
+ day: monday
51
+ time: '09:00'
52
+ timezone: Etc/UTC
53
+ groups:
54
+ github-actions:
55
+ patterns:
56
+ - '*'
57
+ open-pull-requests-limit: 5
58
+ commit-message:
59
+ prefix: deps
@@ -0,0 +1,285 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ concurrency:
14
+ group: ci-${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ env:
18
+ PYTHONUTF8: '1'
19
+
20
+ jobs:
21
+ quality:
22
+ name: Quality / Ubuntu / Python 3.11
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
26
+ with:
27
+ fetch-depth: 0
28
+
29
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
30
+ with:
31
+ python-version: '3.11'
32
+ cache: pip
33
+
34
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
35
+ with:
36
+ node-version: '20'
37
+ cache: npm
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install -e ".[dev,mcp]"
42
+ npm ci
43
+
44
+ - name: Run unit and script tests with coverage
45
+ env:
46
+ ARCGRAPH_REQUIRE_TS: '1'
47
+ run: |
48
+ mkdir -p output/arcgraph
49
+ python -m pytest arcgraph/tests scripts/tests -q --cov=arcgraph --cov-report=xml:output/arcgraph/coverage.xml --cov-report=term --cov-fail-under=92
50
+
51
+ - name: Check formatting and lint
52
+ run: |
53
+ python -m black arcgraph scripts --check
54
+ python -m ruff check arcgraph scripts
55
+
56
+ - name: Build local index
57
+ run: python scripts/arcgraph.py build
58
+
59
+ - name: Run ArcGraph CI
60
+ run: python scripts/arcgraph.py ci
61
+
62
+ - name: Run release gate
63
+ run: python scripts/arcgraph_release_gate.py
64
+
65
+ - name: Upload coverage evidence
66
+ if: always()
67
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
68
+ with:
69
+ name: coverage-python-3.11
70
+ path: output/arcgraph/coverage.xml
71
+ if-no-files-found: error
72
+ retention-days: 14
73
+
74
+ test-matrix:
75
+ name: Tests / ${{ matrix.os }} / Python ${{ matrix.python }}
76
+ runs-on: ${{ matrix.os }}
77
+ strategy:
78
+ fail-fast: false
79
+ matrix:
80
+ os:
81
+ - ubuntu-latest
82
+ - windows-latest
83
+ - macos-latest
84
+ python:
85
+ - '3.11'
86
+ - '3.12'
87
+ steps:
88
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
89
+
90
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
91
+ with:
92
+ python-version: ${{ matrix.python }}
93
+ cache: pip
94
+
95
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
96
+ with:
97
+ node-version: '20'
98
+ cache: npm
99
+
100
+ - name: Install dependencies
101
+ run: |
102
+ python -m pip install -e ".[dev,mcp]"
103
+ npm ci
104
+
105
+ - name: Run cross-platform tests
106
+ env:
107
+ ARCGRAPH_REQUIRE_TS: '1'
108
+ run: python -m pytest arcgraph/tests scripts/tests -q
109
+
110
+ package-matrix:
111
+ name: Package / ${{ matrix.os }} / Python ${{ matrix.python }} / MCP ${{ matrix.mcp_line }}
112
+ runs-on: ${{ matrix.os }}
113
+ strategy:
114
+ fail-fast: false
115
+ matrix:
116
+ include:
117
+ - os: ubuntu-latest
118
+ python: '3.11'
119
+ mcp_line: lower
120
+ mcp_spec: mcp==2.0.0
121
+ - os: ubuntu-latest
122
+ python: '3.11'
123
+ mcp_line: latest-2x
124
+ mcp_spec: mcp>=2.0.0,<3.0.0
125
+ - os: windows-latest
126
+ python: '3.12'
127
+ mcp_line: latest-2x
128
+ mcp_spec: mcp>=2.0.0,<3.0.0
129
+ - os: macos-latest
130
+ python: '3.12'
131
+ mcp_line: latest-2x
132
+ mcp_spec: mcp>=2.0.0,<3.0.0
133
+ steps:
134
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
135
+ with:
136
+ fetch-depth: 0
137
+
138
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
139
+ with:
140
+ python-version: ${{ matrix.python }}
141
+ cache: pip
142
+
143
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
144
+ with:
145
+ node-version: '20'
146
+ cache: npm
147
+
148
+ - name: Install package-smoke prerequisites
149
+ run: |
150
+ python -m pip install -e ".[dev]"
151
+ npm ci
152
+
153
+ - name: Build, install, and exercise package artifacts
154
+ run: |
155
+ python -c "from pathlib import Path; Path('output/release').mkdir(parents=True, exist_ok=True)"
156
+ python scripts/arcgraph_package_readiness_smoke.py --mcp-version-spec "${{ matrix.mcp_spec }}" > output/release/package-readiness.json
157
+
158
+ - name: Upload package provenance
159
+ if: always()
160
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
161
+ with:
162
+ name: package-readiness-${{ matrix.os }}-py${{ matrix.python }}-${{ matrix.mcp_line }}
163
+ path: output/release/package-readiness.json
164
+ if-no-files-found: error
165
+ retention-days: 14
166
+
167
+ typescript-acceptance:
168
+ name: TypeScript / Node ${{ matrix.node }} / TS ${{ matrix.typescript }}
169
+ runs-on: ubuntu-latest
170
+ strategy:
171
+ fail-fast: false
172
+ matrix:
173
+ include:
174
+ - node: '20'
175
+ typescript: '5.4.5'
176
+ - node: '20'
177
+ typescript: '5.9.3'
178
+ - node: '22'
179
+ typescript: '5.9.3'
180
+ - node: '24'
181
+ typescript: '5.9.3'
182
+ steps:
183
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
184
+
185
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
186
+ with:
187
+ python-version: '3.11'
188
+ cache: pip
189
+
190
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
191
+ with:
192
+ node-version: ${{ matrix.node }}
193
+ cache: npm
194
+
195
+ - name: Install acceptance toolchain
196
+ run: |
197
+ python -m pip install -e ".[dev]"
198
+ npm ci
199
+ npm install --no-save --ignore-scripts typescript@${{ matrix.typescript }}
200
+
201
+ - name: Run formal TypeScript acceptance contract
202
+ env:
203
+ ARCGRAPH_REQUIRE_TS: '1'
204
+ run: |
205
+ python -m pytest -q \
206
+ arcgraph/tests/test_typescript_baseline.py \
207
+ arcgraph/tests/test_typescript_esm_resolution.py \
208
+ arcgraph/tests/test_typescript_package_exports.py \
209
+ arcgraph/tests/test_typescript_conditional_exports.py \
210
+ arcgraph/tests/test_typescript_express_routes.py \
211
+ arcgraph/tests/test_typescript_similarity.py
212
+
213
+ security:
214
+ name: Security / Audit and SBOM
215
+ runs-on: ubuntu-latest
216
+ steps:
217
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
218
+
219
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
220
+ with:
221
+ python-version: '3.12'
222
+ cache: pip
223
+
224
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
225
+ with:
226
+ node-version: '20'
227
+ cache: npm
228
+
229
+ - name: Install security tooling
230
+ run: |
231
+ python -m pip install --upgrade pip setuptools wheel
232
+ python -m pip install -e ".[dev,mcp,security]"
233
+ npm ci
234
+
235
+ - name: Generate CycloneDX SBOM
236
+ run: |
237
+ mkdir -p output/security
238
+ python -m cyclonedx_py environment --output-format JSON --output-file output/security/arcgraph.cdx.json
239
+
240
+ - name: Audit Python dependencies
241
+ run: |
242
+ python -m pip freeze --exclude-editable > output/security/python-audit-requirements.txt
243
+ python -m pip_audit --strict --disable-pip --no-deps --requirement output/security/python-audit-requirements.txt --format json --output output/security/pip-audit.json
244
+
245
+ - name: Audit Node development dependencies
246
+ run: |
247
+ test "$(npx --yes npm@11.12.1 --version)" = "11.12.1"
248
+ npx --yes npm@11.12.1 audit --audit-level=high --json > output/security/npm-audit.json
249
+
250
+ - name: Scan Python source
251
+ run: python -m bandit -c pyproject.toml -r arcgraph scripts -x arcgraph/tests,scripts/tests -f json -o output/security/bandit.json
252
+
253
+ - name: Upload security evidence
254
+ if: always()
255
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
256
+ with:
257
+ name: security-evidence
258
+ path: output/security
259
+ if-no-files-found: error
260
+ retention-days: 30
261
+
262
+ ci-gate:
263
+ name: CI Gate
264
+ if: always()
265
+ runs-on: ubuntu-latest
266
+ needs:
267
+ - quality
268
+ - test-matrix
269
+ - package-matrix
270
+ - typescript-acceptance
271
+ - security
272
+ steps:
273
+ - name: Require every CI lane
274
+ env:
275
+ QUALITY_RESULT: ${{ needs.quality.result }}
276
+ TEST_MATRIX_RESULT: ${{ needs['test-matrix'].result }}
277
+ PACKAGE_MATRIX_RESULT: ${{ needs['package-matrix'].result }}
278
+ TYPESCRIPT_ACCEPTANCE_RESULT: ${{ needs['typescript-acceptance'].result }}
279
+ SECURITY_RESULT: ${{ needs.security.result }}
280
+ run: |
281
+ test "$QUALITY_RESULT" = "success"
282
+ test "$TEST_MATRIX_RESULT" = "success"
283
+ test "$PACKAGE_MATRIX_RESULT" = "success"
284
+ test "$TYPESCRIPT_ACCEPTANCE_RESULT" = "success"
285
+ test "$SECURITY_RESULT" = "success"
@@ -0,0 +1,35 @@
1
+ __pycache__/
2
+ .DS_Store
3
+ arcgraph/_build_provenance.json
4
+ *.py[cod]
5
+ .pytest_cache/
6
+ .ruff_cache/
7
+ .mypy_cache/
8
+ .coverage
9
+ coverage.xml
10
+ htmlcov/
11
+ build/
12
+ dist/
13
+ # Approved generated-output fixture used by TypeScript framework scanner tests.
14
+ !arcgraph/tests/fixtures/typescript_frameworks/dist/
15
+ !arcgraph/tests/fixtures/typescript_frameworks/dist/**
16
+ *.egg-info/
17
+ .venv/
18
+ node_modules/
19
+ output/
20
+ .agents/
21
+ .codex/
22
+ viz/graph_data.json
23
+
24
+ # Private working material stays under docs/_internal and is never committed.
25
+ docs/_internal/
26
+
27
+ # Generated/runtime/local artifact filename patterns
28
+ *.log
29
+ *.tmp
30
+ *.db
31
+ *.sqlite
32
+ *.sqlite3
33
+
34
+ # Local operator instructions are not part of the public source tree.
35
+ /AGENTS.md
@@ -0,0 +1,113 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, caste, color, religion, or sexual
10
+ identity and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment:
18
+
19
+ - Demonstrating empathy and kindness toward other people
20
+ - Being respectful of differing opinions, viewpoints, and experiences
21
+ - Giving and gracefully accepting constructive feedback
22
+ - Accepting responsibility and apologizing to those affected by our mistakes,
23
+ and learning from the experience
24
+ - Focusing on what is best not just for us as individuals, but for the overall
25
+ community
26
+
27
+ Examples of unacceptable behavior:
28
+
29
+ - The use of sexualized language or imagery, and sexual attention or advances
30
+ of any kind
31
+ - Trolling, insulting or derogatory comments, and personal or political attacks
32
+ - Public or private harassment
33
+ - Publishing others' private information, such as a physical or email address,
34
+ without their explicit permission
35
+ - Other conduct which could reasonably be considered inappropriate in a
36
+ professional setting
37
+
38
+ ## Enforcement Responsibilities
39
+
40
+ ArcGraph is currently an alpha-stage, single-maintainer project. Until a
41
+ dedicated moderation team exists, the project maintainer is responsible for
42
+ clarifying and enforcing these standards and will take appropriate and fair
43
+ corrective action in response to any behavior deemed inappropriate, threatening,
44
+ offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies within all community spaces associated with this
49
+ project (issues, pull requests, discussions, and any other project
50
+ communication channel), and also applies when an individual is officially
51
+ representing the project in public spaces.
52
+
53
+ ## Enforcement
54
+
55
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
56
+ reported to the maintainer at
57
+ [security@glyphevo.com](mailto:security@glyphevo.com) — the same address used
58
+ for security reports; note "Code of Conduct" in the subject so it is triaged
59
+ correctly. All complaints will be reviewed and investigated promptly and
60
+ fairly.
61
+
62
+ The maintainer is obligated to respect the privacy and security of the
63
+ reporter of any incident. There is no formal enforcement committee at this
64
+ stage of the project; reports are handled directly by the maintainer.
65
+
66
+ ## Enforcement Guidelines
67
+
68
+ The maintainer will follow these Community Impact Guidelines in determining
69
+ the consequences for any action deemed in violation of this Code of Conduct:
70
+
71
+ ### 1. Correction
72
+
73
+ **Community Impact**: Use of inappropriate language or other behavior deemed
74
+ unprofessional or unwelcome.
75
+
76
+ **Consequence**: A private, written warning, providing clarity around the
77
+ nature of the violation and an explanation of why the behavior was
78
+ inappropriate.
79
+
80
+ ### 2. Warning
81
+
82
+ **Community Impact**: A violation through a single incident or series of
83
+ actions.
84
+
85
+ **Consequence**: A warning with consequences for continued behavior. No
86
+ interaction with the people involved for a specified period of time. Further
87
+ violations may lead to a temporary or permanent ban.
88
+
89
+ ### 3. Temporary Ban
90
+
91
+ **Community Impact**: A serious violation of community standards, including
92
+ sustained inappropriate behavior.
93
+
94
+ **Consequence**: A temporary ban from any sort of interaction or public
95
+ communication with the project for a specified period of time.
96
+
97
+ ### 4. Permanent Ban
98
+
99
+ **Community Impact**: Demonstrating a pattern of violation of community
100
+ standards, including sustained inappropriate behavior, harassment of an
101
+ individual, or aggression toward or disparagement of classes of individuals.
102
+
103
+ **Consequence**: A permanent ban from any sort of public interaction within
104
+ the project.
105
+
106
+ ## Attribution
107
+
108
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
109
+ version 2.1, available at
110
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
111
+
112
+ [homepage]: https://www.contributor-covenant.org
113
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
@@ -0,0 +1,60 @@
1
+ # Contributing To ArcGraph
2
+
3
+ ArcGraph is an alpha-stage, local-first code semantic graph engine.
4
+ Contributions should preserve the current public-safe boundaries:
5
+ source-checkout install, local execution, no public package publishing claims,
6
+ and no public MCP distribution claims.
7
+
8
+ ## Before Opening A Pull Request
9
+
10
+ - Keep changes focused and explain the user-facing behavior or evidence improved.
11
+ - Run the [local checks](#local-checks) before requesting review.
12
+ - On a clean committed branch, run
13
+ `python scripts/arcgraph_release_gate.py` and
14
+ `python scripts/arcgraph_package_readiness_smoke.py`; dirty source is rejected
15
+ so artifact evidence cannot be confused with uncommitted work.
16
+ - GitHub Actions runs the `CI` workflow. A passing run is evidence only for the
17
+ commit it ran on; check the run for the exact commit before treating the
18
+ Ubuntu/Windows/macOS matrix as passing.
19
+ - Do not commit generated output, `dist`, `node_modules`, caches, smoke outputs,
20
+ credentials, private repository contents, or local process notes.
21
+ - Keep docs honest about current maturity. Describe ArcGraph as an alpha
22
+ developer preview until its release status actually changes.
23
+
24
+ ## Local Checks
25
+
26
+ These are the contributor-level part of the required local gate. Run them from
27
+ a source checkout. `arcgraph docs release-checklist` is the authoritative,
28
+ current list and also covers the steps only a release needs.
29
+
30
+ ```bash
31
+ export ARCGRAPH_REQUIRE_TS=1
32
+ npm ci
33
+ python -m pip install --upgrade pip setuptools wheel
34
+ python -m pip install -e ".[dev,mcp,security]"
35
+ python -m pytest arcgraph/tests scripts/tests -q
36
+ python -m black arcgraph scripts --check
37
+ python -m ruff check arcgraph scripts
38
+ python -m bandit -c pyproject.toml -r arcgraph scripts -x arcgraph/tests,scripts/tests
39
+ mkdir -p output/security
40
+ python -m pip freeze --exclude-editable > output/security/python-audit-requirements.txt
41
+ python -m pip_audit --strict --disable-pip --no-deps --requirement output/security/python-audit-requirements.txt
42
+ npx --yes npm@11.12.1 audit --audit-level=high --json
43
+ python scripts/arcgraph.py build
44
+ python scripts/arcgraph.py ci
45
+ ```
46
+
47
+ `ARCGRAPH_REQUIRE_TS=1` makes the TypeScript golden tests fail instead of
48
+ skipping when Node or the compiler API is unavailable. The commands are
49
+ POSIX-shell syntax; on Windows PowerShell set it with
50
+ `$env:ARCGRAPH_REQUIRE_TS = "1"` and translate `export`, `mkdir -p` and the `>`
51
+ redirect.
52
+
53
+ ## Security
54
+
55
+ Do not open public issues for vulnerabilities or sensitive data exposure. Follow
56
+ the private reporting path in `SECURITY.md`.
57
+
58
+ ## Code Of Conduct
59
+
60
+ Participation in this project is governed by [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).