arc-cloud 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 (74) hide show
  1. arc_cloud-0.1.0/.github/workflows/release.yml +90 -0
  2. arc_cloud-0.1.0/.github/workflows/tests.yml +43 -0
  3. arc_cloud-0.1.0/.gitignore +33 -0
  4. arc_cloud-0.1.0/.python-version +1 -0
  5. arc_cloud-0.1.0/CHANGELOG.md +22 -0
  6. arc_cloud-0.1.0/LICENSE +21 -0
  7. arc_cloud-0.1.0/PKG-INFO +303 -0
  8. arc_cloud-0.1.0/README.md +268 -0
  9. arc_cloud-0.1.0/arc_cloud/__init__.py +4 -0
  10. arc_cloud-0.1.0/arc_cloud/blueprint/__init__.py +35 -0
  11. arc_cloud-0.1.0/arc_cloud/blueprint/generator.py +89 -0
  12. arc_cloud-0.1.0/arc_cloud/blueprint/models.py +108 -0
  13. arc_cloud-0.1.0/arc_cloud/commands/__init__.py +5 -0
  14. arc_cloud-0.1.0/arc_cloud/commands/scan.py +177 -0
  15. arc_cloud-0.1.0/arc_cloud/main.py +48 -0
  16. arc_cloud-0.1.0/arc_cloud/scanner/__init__.py +41 -0
  17. arc_cloud-0.1.0/arc_cloud/scanner/config_detector.py +54 -0
  18. arc_cloud-0.1.0/arc_cloud/scanner/dependencies.py +246 -0
  19. arc_cloud-0.1.0/arc_cloud/scanner/engine.py +252 -0
  20. arc_cloud-0.1.0/arc_cloud/scanner/frameworks.py +341 -0
  21. arc_cloud-0.1.0/arc_cloud/scanner/languages.py +82 -0
  22. arc_cloud-0.1.0/arc_cloud/scanner/platforms.py +64 -0
  23. arc_cloud-0.1.0/arc_cloud/scanner/structure.py +54 -0
  24. arc_cloud-0.1.0/arc_cloud/utils/__init__.py +16 -0
  25. arc_cloud-0.1.0/arc_cloud/utils/filesystem.py +143 -0
  26. arc_cloud-0.1.0/arc_cloud/utils/security.py +121 -0
  27. arc_cloud-0.1.0/pyproject.toml +68 -0
  28. arc_cloud-0.1.0/tests/fixtures/django_project/README.md +2 -0
  29. arc_cloud-0.1.0/tests/fixtures/django_project/manage.py +9 -0
  30. arc_cloud-0.1.0/tests/fixtures/django_project/myproject/settings.py +7 -0
  31. arc_cloud-0.1.0/tests/fixtures/django_project/myproject/urls.py +3 -0
  32. arc_cloud-0.1.0/tests/fixtures/django_project/requirements.txt +3 -0
  33. arc_cloud-0.1.0/tests/fixtures/dotnet_project/Program.cs +6 -0
  34. arc_cloud-0.1.0/tests/fixtures/dotnet_project/README.md +2 -0
  35. arc_cloud-0.1.0/tests/fixtures/dotnet_project/SampleApp.csproj +14 -0
  36. arc_cloud-0.1.0/tests/fixtures/dotnet_project/appsettings.json +8 -0
  37. arc_cloud-0.1.0/tests/fixtures/fastapi_project/Dockerfile +6 -0
  38. arc_cloud-0.1.0/tests/fixtures/fastapi_project/README.md +2 -0
  39. arc_cloud-0.1.0/tests/fixtures/fastapi_project/app/api/endpoints.py +7 -0
  40. arc_cloud-0.1.0/tests/fixtures/fastapi_project/app/main.py +7 -0
  41. arc_cloud-0.1.0/tests/fixtures/fastapi_project/requirements.txt +5 -0
  42. arc_cloud-0.1.0/tests/fixtures/fastapi_project/tests/test_main.py +8 -0
  43. arc_cloud-0.1.0/tests/fixtures/flutter_project/README.md +2 -0
  44. arc_cloud-0.1.0/tests/fixtures/flutter_project/android/AndroidManifest.xml +2 -0
  45. arc_cloud-0.1.0/tests/fixtures/flutter_project/ios/Runner.xcodeproj +2 -0
  46. arc_cloud-0.1.0/tests/fixtures/flutter_project/lib/main.dart +3 -0
  47. arc_cloud-0.1.0/tests/fixtures/flutter_project/pubspec.yaml +19 -0
  48. arc_cloud-0.1.0/tests/fixtures/flutter_project/test/widget_test.dart +1 -0
  49. arc_cloud-0.1.0/tests/fixtures/nextjs_project/README.md +2 -0
  50. arc_cloud-0.1.0/tests/fixtures/nextjs_project/app/layout.tsx +7 -0
  51. arc_cloud-0.1.0/tests/fixtures/nextjs_project/app/page.tsx +3 -0
  52. arc_cloud-0.1.0/tests/fixtures/nextjs_project/next.config.js +6 -0
  53. arc_cloud-0.1.0/tests/fixtures/nextjs_project/package.json +15 -0
  54. arc_cloud-0.1.0/tests/fixtures/node_project/README.md +2 -0
  55. arc_cloud-0.1.0/tests/fixtures/node_project/package.json +14 -0
  56. arc_cloud-0.1.0/tests/fixtures/node_project/src/routes/api.js +6 -0
  57. arc_cloud-0.1.0/tests/fixtures/node_project/src/server.js +9 -0
  58. arc_cloud-0.1.0/tests/fixtures/react_project/README.md +2 -0
  59. arc_cloud-0.1.0/tests/fixtures/react_project/package.json +14 -0
  60. arc_cloud-0.1.0/tests/fixtures/react_project/public/index.html +10 -0
  61. arc_cloud-0.1.0/tests/fixtures/react_project/src/App.tsx +5 -0
  62. arc_cloud-0.1.0/tests/fixtures/react_project/src/index.tsx +5 -0
  63. arc_cloud-0.1.0/tests/fixtures/react_project/tsconfig.json +9 -0
  64. arc_cloud-0.1.0/tests/fixtures/spring_project/README.md +2 -0
  65. arc_cloud-0.1.0/tests/fixtures/spring_project/pom.xml +23 -0
  66. arc_cloud-0.1.0/tests/fixtures/spring_project/src/main/java/com/example/demo/DemoApplication.java +7 -0
  67. arc_cloud-0.1.0/tests/fixtures/spring_project/src/main/resources/application.properties +2 -0
  68. arc_cloud-0.1.0/tests/test_blueprint.py +66 -0
  69. arc_cloud-0.1.0/tests/test_dependencies.py +78 -0
  70. arc_cloud-0.1.0/tests/test_frameworks.py +85 -0
  71. arc_cloud-0.1.0/tests/test_languages.py +77 -0
  72. arc_cloud-0.1.0/tests/test_platforms.py +34 -0
  73. arc_cloud-0.1.0/tests/test_scanner.py +190 -0
  74. arc_cloud-0.1.0/tests/test_structure.py +42 -0
@@ -0,0 +1,90 @@
1
+ name: Release to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v[0-9]+.[0-9]+.[0-9]+*"
7
+ workflow_dispatch:
8
+ inputs:
9
+ target:
10
+ description: "Release destination"
11
+ required: true
12
+ default: "testpypi"
13
+ type: choice
14
+ options:
15
+ - testpypi
16
+ - pypi
17
+
18
+ jobs:
19
+ build:
20
+ name: Build distribution
21
+ runs-on: ubuntu-latest
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+
25
+ - name: Set up Python 3.11
26
+ uses: actions/setup-python@v5
27
+ with:
28
+ python-version: "3.11"
29
+
30
+ - name: Install build tools
31
+ run: |
32
+ python -m pip install --upgrade pip
33
+ pip install build twine
34
+
35
+ - name: Build sdist and wheel
36
+ run: |
37
+ python -m build
38
+
39
+ - name: Check package integrity
40
+ run: |
41
+ python -m twine check dist/*
42
+
43
+ - name: Upload dist artifact
44
+ uses: actions/upload-artifact@v4
45
+ with:
46
+ name: python-package-distributions
47
+ path: dist/
48
+
49
+ publish-testpypi:
50
+ name: Publish to TestPyPI
51
+ needs: [build]
52
+ if: github.event.inputs.target == 'testpypi' || startsWith(github.ref, 'refs/tags/v')
53
+ runs-on: ubuntu-latest
54
+ environment:
55
+ name: testpypi
56
+ url: https://test.pypi.org/p/arc-cloud
57
+ permissions:
58
+ id-token: write # Mandatory for Trusted Publishing
59
+ steps:
60
+ - name: Download dist artifact
61
+ uses: actions/download-artifact@v4
62
+ with:
63
+ name: python-package-distributions
64
+ path: dist/
65
+
66
+ - name: Publish to TestPyPI via PyPI Publish Action
67
+ uses: pypa/gh-action-pypi-publish@release/v1
68
+ with:
69
+ repository-url: https://test.pypi.org/legacy/
70
+ skip-existing: true
71
+
72
+ publish-pypi:
73
+ name: Publish to Production PyPI
74
+ needs: [build, publish-testpypi]
75
+ if: github.event.inputs.target == 'pypi' || (startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-rc') && !contains(github.ref, '-alpha'))
76
+ runs-on: ubuntu-latest
77
+ environment:
78
+ name: pypi
79
+ url: https://pypi.org/p/arc-cloud
80
+ permissions:
81
+ id-token: write # Mandatory for Trusted Publishing
82
+ steps:
83
+ - name: Download dist artifact
84
+ uses: actions/download-artifact@v4
85
+ with:
86
+ name: python-package-distributions
87
+ path: dist/
88
+
89
+ - name: Publish package to PyPI
90
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,43 @@
1
+ name: Tests & CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+ branches: [main, master]
8
+
9
+ jobs:
10
+ test:
11
+ name: Test (Python ${{ matrix.python-version }})
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ python-version: ["3.11", "3.12", "3.13"]
17
+
18
+ steps:
19
+ - name: Check out repository
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Set up Python ${{ matrix.python-version }}
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+ cache: "pip"
27
+
28
+ - name: Install dependencies
29
+ run: |
30
+ python -m pip install --upgrade pip
31
+ pip install -e ".[dev]"
32
+
33
+ - name: Run pytest
34
+ run: |
35
+ pytest -v --cov=arc_cloud --cov-report=term-missing
36
+
37
+ - name: Build distribution packages
38
+ run: |
39
+ python -m build
40
+
41
+ - name: Verify distribution archives
42
+ run: |
43
+ python -m twine check dist/*
@@ -0,0 +1,33 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # Distribution / packaging
7
+ dist/
8
+ build/
9
+ *.egg-info/
10
+ .eggs/
11
+
12
+ # Virtual Environments
13
+ .venv/
14
+ venv/
15
+ ENV/
16
+ env/
17
+
18
+ # Testing & Coverage
19
+ .pytest_cache/
20
+ .coverage
21
+ htmlcov/
22
+
23
+ # Editor directories
24
+ .idea/
25
+ .vscode/
26
+ *.swp
27
+ *.swo
28
+ .DS_Store
29
+
30
+ # Temporary outputs
31
+ blueprint.json
32
+ scan_results.json
33
+ target/
@@ -0,0 +1 @@
1
+ 3.11
@@ -0,0 +1,22 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2026-09-04
9
+
10
+ Initial public release of ARC CLOUD CLI.
11
+
12
+ - **Local Software X-Ray Scanning**: Deterministic static analysis without executing project code or requiring an LLM/cloud account.
13
+ - **Language Detection**: Extension- and manifest-based detection for Dart, Python, JavaScript, TypeScript, Java, Kotlin, Swift, C#, C++, Go, Rust, PHP, and Ruby with file counts and percentage metrics.
14
+ - **Modular Framework Detectors**: Independent detectors for Flutter, React, Next.js, Node.js, FastAPI, Django, Spring Boot, and .NET.
15
+ - **Target Platform Detection**: Automated detection for Android, iOS, Web, Windows, macOS, and Linux.
16
+ - **Safe Dependency Extraction**: Static parsing for `pubspec.yaml`, `package.json`, `requirements.txt`, `pyproject.toml`, `Pipfile`, `pom.xml`, `build.gradle`, and `*.csproj`.
17
+ - **Configuration & Structure Analysis**: Categorizes directories into source, tests, assets, platforms, configuration, and documentation; catalogs key project manifests.
18
+ - **Software Blueprint Schema v1.0**: Validated Pydantic models with schema versioning.
19
+ - **Rich Terminal UI**: Polished terminal presentation powered by Rich.
20
+ - **Flexible Output Modes**: Raw JSON output (`arc scan --json`) and direct file export (`arc scan --output blueprint.json`).
21
+ - **Security & Limits**: Hardened path traversal protection, symlink escape isolation, sensitive/`.env` file blocking, and safe traversal limits.
22
+ - **Global Executable**: Installs globally as `arc` via `pipx` or standard `pip`.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ARC CLOUD
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,303 @@
1
+ Metadata-Version: 2.5
2
+ Name: arc-cloud
3
+ Version: 0.1.0
4
+ Summary: ARC CLOUD Software X-Ray CLI
5
+ Project-URL: Homepage, https://github.com/arc-cloud-innovations/arc-cloud-cli
6
+ Project-URL: Documentation, https://github.com/arc-cloud-innovations/arc-cloud-cli#readme
7
+ Project-URL: Repository, https://github.com/arc-cloud-innovations/arc-cloud-cli
8
+ Project-URL: Issues, https://github.com/arc-cloud-innovations/arc-cloud-cli/issues
9
+ Author-email: ARC CLOUD Team <support@arc-cloud.dev>
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: architecture,cli,developer-tools,project-scanner,software-blueprint,static-analysis,x-ray
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Software Development :: Quality Assurance
23
+ Classifier: Topic :: Utilities
24
+ Requires-Python: >=3.11
25
+ Requires-Dist: pydantic>=2.6.0
26
+ Requires-Dist: pyyaml>=6.0.1
27
+ Requires-Dist: rich>=13.7.0
28
+ Requires-Dist: typer>=0.12.0
29
+ Provides-Extra: dev
30
+ Requires-Dist: build>=1.1.0; extra == 'dev'
31
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
32
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
33
+ Requires-Dist: twine>=5.0.0; extra == 'dev'
34
+ Description-Content-Type: text/markdown
35
+
36
+ # ARC CLOUD CLI
37
+
38
+ [![CI Tests](https://github.com/arc-cloud-innovations/arc-cloud-cli/actions/workflows/tests.yml/badge.svg)](https://github.com/arc-cloud-innovations/arc-cloud-cli/actions/workflows/tests.yml)
39
+ [![PyPI version](https://img.shields.io/pypi/v/arc-cloud.svg)](https://pypi.org/project/arc-cloud/)
40
+ [![Python Version](https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue.svg)](https://www.python.org/)
41
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
42
+
43
+ > **ARC CLOUD CLI** is a local Software X-Ray tool that analyzes a software project and generates a structured Software Blueprint containing detected languages, frameworks, platforms, dependencies, configuration and project structure.
44
+
45
+ ---
46
+
47
+ ## Privacy & Security Guarantee
48
+
49
+ ```text
50
+ ARC CLOUD CLI performs project scanning locally.
51
+ Your source code is not uploaded to ARC CLOUD during local scanning.
52
+ ```
53
+
54
+ - **100% Offline & Local**: Scanning runs entirely on your local machine without sending your code to any cloud server or LLM API.
55
+ - **Zero Code Execution**: Manifests and code files are statically inspected. The scanner never executes project code or runs package managers (`npm install`, `pip install`, `flutter pub get`, `gradle`, `cargo`, etc.).
56
+ - **Secret Protection**: Files matching `.env`, `.env.*`, `credentials.json`, `id_rsa`, `*.key`, and secret patterns are never read, printed, or exported.
57
+ - **No AI / LLM Requirement**: Deterministic, rule-based static analysis engine.
58
+
59
+ ---
60
+
61
+ ## Installation
62
+
63
+ ### Recommended: `pipx` (Globally Available)
64
+ Install once globally and run from any project directory:
65
+ ```bash
66
+ pipx install arc-cloud
67
+ ```
68
+
69
+ ### Standard `pip`
70
+ ```bash
71
+ pip install arc-cloud
72
+ ```
73
+
74
+ ### Development Installation
75
+ ```bash
76
+ git clone https://github.com/arc-cloud-innovations/arc-cloud-cli.git
77
+ cd arc-cloud-cli
78
+ python3 -m venv .venv
79
+ source .venv/bin/activate # On Windows: .venv\Scripts\activate
80
+ pip install -e ".[dev]"
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Usage
86
+
87
+ ### 1. Scan Current Project Directory
88
+ Navigate to any project on your computer and run:
89
+ ```bash
90
+ cd my-project
91
+ arc scan
92
+ ```
93
+
94
+ ### 2. Scan a Specific Project Path
95
+ ```bash
96
+ arc scan ./my-project
97
+ arc scan /absolute/path/to/project
98
+ ```
99
+
100
+ ### 3. Output as Raw JSON
101
+ Stream the normalized Software Blueprint JSON directly to stdout for scripting or piping into `jq`:
102
+ ```bash
103
+ arc scan --json
104
+ arc scan ./my-project --json | jq .project
105
+ ```
106
+
107
+ ### 4. Export Blueprint to File
108
+ ```bash
109
+ arc scan --output blueprint.json
110
+ ```
111
+
112
+ ### 5. Check CLI Version & Help
113
+ ```bash
114
+ arc --version
115
+ arc --help
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Supported Technologies
121
+
122
+ ### Programming Languages
123
+ - **Dart** (`.dart`)
124
+ - **Python** (`.py`, `.pyi`, `.pyw`)
125
+ - **JavaScript** (`.js`, `.mjs`, `.cjs`, `.jsx`)
126
+ - **TypeScript** (`.ts`, `.mts`, `.cts`, `.tsx`)
127
+ - **Java** (`.java`)
128
+ - **Kotlin** (`.kt`, `.kts`)
129
+ - **Swift** (`.swift`)
130
+ - **C#** (`.cs`, `.csx`)
131
+ - **C++ / C** (`.cpp`, `.cc`, `.cxx`, `.hpp`, `.h`, `.c`)
132
+ - **Go** (`.go`)
133
+ - **Rust** (`.rs`)
134
+ - **PHP** (`.php`)
135
+ - **Ruby** (`.rb`)
136
+
137
+ ### Frameworks & Ecosystems
138
+ - **Flutter**: `pubspec.yaml`, Flutter SDK dependencies, Dart files, Android/iOS directories.
139
+ - **React**: `package.json`, `react` dependencies, JSX/TSX components.
140
+ - **Next.js**: `package.json`, `next` dependencies, `next.config.*`, App/Pages router.
141
+ - **Node.js**: `package.json`, JavaScript/TypeScript server signals.
142
+ - **FastAPI**: `requirements.txt`, `pyproject.toml`, `fastapi` dependencies.
143
+ - **Django**: `requirements.txt`, `manage.py`, `django` dependencies.
144
+ - **Spring Boot**: `pom.xml`, `build.gradle`, Spring starter dependencies.
145
+ - **.NET**: `*.csproj`, `*.sln`, SDK indicators.
146
+
147
+ ### Platforms Detected
148
+ - **Android**, **iOS**, **Web**, **Windows**, **macOS**, **Linux**
149
+
150
+ ### Project Classifications
151
+ - **Mobile Application**, **Web Application**, **Backend**, **Full Stack**, **Desktop Application**, **Library**, **CLI Application**, **Unknown**
152
+
153
+ ---
154
+
155
+ ## CLI Commands Reference
156
+
157
+ | Command | Description |
158
+ | :--- | :--- |
159
+ | `arc scan [PATH]` | Perform static project analysis and generate Software Blueprint (defaults to current directory) |
160
+ | `arc --version` | Display the installed CLI version |
161
+ | `arc --help` | Display general help and command options |
162
+
163
+ Options for `arc scan`:
164
+ - `--json`, `-j`: Output the normalized Software Blueprint as raw JSON to stdout.
165
+ - `--output`, `-o <FILE>`: Save the normalized Software Blueprint JSON to a specified file.
166
+ - `--max-files <INT>`: Maximum number of files to inspect (default: 20,000).
167
+ - `--max-depth <INT>`: Maximum directory recursion depth (default: 20).
168
+
169
+ ---
170
+
171
+ ## Software Blueprint JSON Specification
172
+
173
+ The Software Blueprint uses schema version `1.0`:
174
+
175
+ ```json
176
+ {
177
+ "schema_version": "1.0",
178
+ "scanner": {
179
+ "name": "ARC CLOUD CLI",
180
+ "version": "0.1.0",
181
+ "timestamp": "2026-09-04T12:00:00Z",
182
+ "duration_seconds": 0.04,
183
+ "files_scanned": 128
184
+ },
185
+ "project": {
186
+ "name": "my_project",
187
+ "type": "Mobile Application",
188
+ "root_path": "/path/to/my_project",
189
+ "description": null
190
+ },
191
+ "languages": [
192
+ {
193
+ "name": "Dart",
194
+ "files": 45,
195
+ "percentage": 88.2
196
+ }
197
+ ],
198
+ "frameworks": [
199
+ {
200
+ "name": "Flutter",
201
+ "version": "3.19.0",
202
+ "category": "Mobile",
203
+ "confidence": 1.0
204
+ }
205
+ ],
206
+ "platforms": [
207
+ {
208
+ "name": "Android",
209
+ "source": "android/ directory"
210
+ },
211
+ {
212
+ "name": "iOS",
213
+ "source": "ios/ directory"
214
+ }
215
+ ],
216
+ "dependencies": [
217
+ {
218
+ "name": "cupertino_icons",
219
+ "version": "^1.0.6",
220
+ "source": "pubspec.yaml",
221
+ "type": "runtime"
222
+ }
223
+ ],
224
+ "configuration_files": [
225
+ {
226
+ "path": "pubspec.yaml",
227
+ "name": "pubspec.yaml",
228
+ "type": "package"
229
+ }
230
+ ],
231
+ "structure": {
232
+ "areas": [
233
+ {
234
+ "name": "source",
235
+ "paths": ["lib"]
236
+ },
237
+ {
238
+ "name": "tests",
239
+ "paths": ["test"]
240
+ }
241
+ ],
242
+ "total_files": 128,
243
+ "total_directories": 14,
244
+ "ignored_directories": [".git", ".dart_tool"]
245
+ },
246
+ "architecture": {
247
+ "patterns": ["Layered / Modular Architecture"],
248
+ "details": {
249
+ "test_suite_detected": true
250
+ }
251
+ },
252
+ "warnings": []
253
+ }
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Development & Testing
259
+
260
+ Run all tests:
261
+ ```bash
262
+ pytest -v
263
+ ```
264
+
265
+ Run test coverage:
266
+ ```bash
267
+ pytest --cov=arc_cloud --cov-report=term-missing
268
+ ```
269
+
270
+ Build the distribution packages:
271
+ ```bash
272
+ python -m pip install --upgrade build twine
273
+ python -m build
274
+ python -m twine check dist/*
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Release Process
280
+
281
+ ### 1. TestPyPI Publishing
282
+ ```bash
283
+ twine upload -r testpypi dist/*
284
+ ```
285
+ Verify the TestPyPI package:
286
+ ```bash
287
+ pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ arc-cloud
288
+ arc --version
289
+ ```
290
+
291
+ ### 2. Production PyPI Publishing
292
+ When authorized by the project owner:
293
+ ```bash
294
+ git tag v0.1.0
295
+ git push origin v0.1.0
296
+ ```
297
+ GitHub Actions will run tests, build distribution wheels, and publish to production PyPI via PyPI Trusted Publishing.
298
+
299
+ ---
300
+
301
+ ## License
302
+
303
+ MIT License. See [LICENSE](LICENSE) for details.