cloudshellgpt 1.0.0__tar.gz → 1.0.2__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 (70) hide show
  1. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.github/workflows/ci.yml +29 -29
  2. cloudshellgpt-1.0.2/.github/workflows/publish.yml +31 -0
  3. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.gitignore +67 -67
  4. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/hooks/lint-on-save.json +13 -13
  5. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/hooks/test-mirror-reminder.json +13 -13
  6. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/settings/mcp.json +13 -13
  7. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/skills/pytest-unit-creator.md +336 -336
  8. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/skills/python-module-scaffold.md +138 -138
  9. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/specs/00-overview.md +104 -104
  10. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/specs/01-architecture.md +413 -413
  11. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/specs/02-acceptance-criteria.md +346 -346
  12. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/specs/03-implementation-plan.md +431 -431
  13. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/specs/03-implementation-plan.meta.json +60 -60
  14. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/steering/aws-conventions.md +77 -77
  15. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/steering/code-style.md +79 -79
  16. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/steering/commit-conventions.md +109 -109
  17. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/steering/language.md +20 -20
  18. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/steering/mcp-development.md +90 -90
  19. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/steering/project-context.md +145 -145
  20. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/steering/safety-patterns.md +137 -137
  21. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.kiro/steering/testing-guide.md +186 -186
  22. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/.pre-commit-config.yaml +32 -32
  23. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/LICENSE +198 -198
  24. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/PKG-INFO +8 -7
  25. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/README.md +380 -379
  26. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/docs/IAM_PERMISSIONS.md +552 -552
  27. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/infrastructure/app.py +27 -27
  28. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/infrastructure/lib/cloudshellgpt_stack.py +309 -309
  29. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/pyproject.toml +121 -121
  30. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/__init__.py +11 -11
  31. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/audit.py +175 -175
  32. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/bedrock_translator.py +525 -525
  33. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/cli.py +612 -612
  34. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/config.py +296 -296
  35. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/cost.py +443 -443
  36. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/executor.py +382 -382
  37. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/formatter.py +328 -328
  38. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/i18n.py +203 -203
  39. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/intent.py +1080 -1080
  40. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/learning.py +969 -969
  41. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/mcp_server.py +264 -264
  42. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/src/cloudshellgpt/safety.py +952 -952
  43. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/__init__.py +1 -1
  44. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/conftest.py +265 -265
  45. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/eval/__init__.py +1 -1
  46. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/eval/test_eval.py +401 -401
  47. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/eval/translation_eval.yaml +1086 -1086
  48. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/eval/validate_distribution.py +275 -275
  49. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/integration/__init__.py +1 -1
  50. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/integration/test_e2e.py +476 -476
  51. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/__init__.py +1 -1
  52. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_audit.py +298 -298
  53. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_bedrock.py +1216 -1216
  54. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_bedrock_error.py +543 -543
  55. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_config.py +300 -300
  56. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_cost.py +664 -664
  57. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_executor.py +1243 -1243
  58. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_formatter.py +1081 -1081
  59. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_intent.py +977 -977
  60. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_learning.py +537 -537
  61. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_mcp_serve.py +239 -239
  62. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_mcp_server.py +430 -430
  63. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_mcp_tool_contracts.py +1197 -1197
  64. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_safety.py +1882 -1882
  65. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/tests/unit/test_smoke.py +27 -27
  66. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/uv.lock +2363 -2363
  67. cloudshellgpt-1.0.0/VIDEO_PITCH.md +0 -385
  68. cloudshellgpt-1.0.0/docs/DEMO_SCRIPT.md +0 -531
  69. cloudshellgpt-1.0.0/prueba.pdf +0 -0
  70. {cloudshellgpt-1.0.0 → cloudshellgpt-1.0.2}/infrastructure/cdk.json +0 -0
@@ -1,29 +1,29 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: [main, dev]
6
- pull_request:
7
- branches: [main, dev]
8
-
9
- jobs:
10
- lint-and-test:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
-
15
- - uses: astral-sh/setup-uv@v3
16
- with:
17
- version: "latest"
18
-
19
- - name: Install dependencies
20
- run: uv sync --all-extras
21
-
22
- - name: Lint (ruff check)
23
- run: uv run ruff check .
24
-
25
- - name: Format check (ruff format)
26
- run: uv run ruff format --check .
27
-
28
- - name: Unit tests
29
- run: uv run pytest tests/unit/ --no-cov -q --ignore=tests/unit/test_executor.py -k "not TestLLMIndependence and not TestAssessIntegration and not test_llm_high_stays_high"
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, dev]
6
+ pull_request:
7
+ branches: [main, dev]
8
+
9
+ jobs:
10
+ lint-and-test:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - uses: astral-sh/setup-uv@v3
16
+ with:
17
+ version: "latest"
18
+
19
+ - name: Install dependencies
20
+ run: uv sync --all-extras
21
+
22
+ - name: Lint (ruff check)
23
+ run: uv run ruff check .
24
+
25
+ - name: Format check (ruff format)
26
+ run: uv run ruff format --check .
27
+
28
+ - name: Unit tests
29
+ run: uv run pytest tests/unit/ --no-cov -q --ignore=tests/unit/test_executor.py -k "not TestLLMIndependence and not TestAssessIntegration and not test_llm_high_stays_high"
@@ -0,0 +1,31 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ build-and-publish:
9
+ runs-on: ubuntu-latest
10
+ environment: pypi
11
+ permissions:
12
+ id-token: write
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.12"
20
+
21
+ - name: Install build tools
22
+ run: pip install build twine
23
+
24
+ - name: Build package
25
+ run: python -m build
26
+
27
+ - name: Verify package
28
+ run: twine check dist/*
29
+
30
+ - name: Publish to PyPI
31
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -1,67 +1,67 @@
1
- # Python
2
- __pycache__/
3
- *.py[cod]
4
- *$py.class
5
- *.so
6
- *.egg-info/
7
- dist/
8
- build/
9
- *.egg
10
- .eggs/
11
-
12
- # Virtual environments
13
- .venv/
14
- venv/
15
- env/
16
- .env
17
-
18
- # IDE
19
- .vscode/
20
- .idea/
21
- *.swp
22
- *.swo
23
- *~
24
-
25
- # OS
26
- .DS_Store
27
- Thumbs.db
28
- desktop.ini
29
-
30
- # AWS & Secrets
31
- .aws/
32
- *.pem
33
- *.key
34
- credentials
35
- .env*
36
- !.env.example
37
-
38
- # Testing
39
- .coverage
40
- htmlcov/
41
- .pytest_cache/
42
- .mypy_cache/
43
-
44
- # CDK
45
- cdk.out/
46
- *.js
47
- !infrastructure/cdk.json
48
-
49
- # Node (if CDK uses node)
50
- node_modules/
51
-
52
- # Local config (user-specific)
53
- ~/.csgpt/
54
-
55
- # Logs
56
- *.log
57
-
58
- # Ruff cache
59
- .ruff_cache/
60
-
61
- # Temporary output files
62
- output.txt
63
- uv_output2.txt
64
-
65
- # Distribution
66
- *.tar.gz
67
- *.whl
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ *.egg-info/
7
+ dist/
8
+ build/
9
+ *.egg
10
+ .eggs/
11
+
12
+ # Virtual environments
13
+ .venv/
14
+ venv/
15
+ env/
16
+ .env
17
+
18
+ # IDE
19
+ .vscode/
20
+ .idea/
21
+ *.swp
22
+ *.swo
23
+ *~
24
+
25
+ # OS
26
+ .DS_Store
27
+ Thumbs.db
28
+ desktop.ini
29
+
30
+ # AWS & Secrets
31
+ .aws/
32
+ *.pem
33
+ *.key
34
+ credentials
35
+ .env*
36
+ !.env.example
37
+
38
+ # Testing
39
+ .coverage
40
+ htmlcov/
41
+ .pytest_cache/
42
+ .mypy_cache/
43
+
44
+ # CDK
45
+ cdk.out/
46
+ *.js
47
+ !infrastructure/cdk.json
48
+
49
+ # Node (if CDK uses node)
50
+ node_modules/
51
+
52
+ # Local config (user-specific)
53
+ ~/.csgpt/
54
+
55
+ # Logs
56
+ *.log
57
+
58
+ # Ruff cache
59
+ .ruff_cache/
60
+
61
+ # Temporary output files
62
+ output.txt
63
+ uv_output2.txt
64
+
65
+ # Distribution
66
+ *.tar.gz
67
+ *.whl
@@ -1,13 +1,13 @@
1
- {
2
- "name": "Lint on Save",
3
- "version": "1.0.0",
4
- "description": "Runs ruff check on saved Python files",
5
- "when": {
6
- "type": "fileEdited",
7
- "patterns": ["*.py"]
8
- },
9
- "then": {
10
- "type": "runCommand",
11
- "command": "ruff check --fix {file}"
12
- }
13
- }
1
+ {
2
+ "name": "Lint on Save",
3
+ "version": "1.0.0",
4
+ "description": "Runs ruff check on saved Python files",
5
+ "when": {
6
+ "type": "fileEdited",
7
+ "patterns": ["*.py"]
8
+ },
9
+ "then": {
10
+ "type": "runCommand",
11
+ "command": "ruff check --fix {file}"
12
+ }
13
+ }
@@ -1,13 +1,13 @@
1
- {
2
- "name": "Test Mirror Reminder",
3
- "version": "1.0.0",
4
- "description": "Reminds to update tests when source files change",
5
- "when": {
6
- "type": "fileEdited",
7
- "patterns": ["src/cloudshellgpt/*.py"]
8
- },
9
- "then": {
10
- "type": "askAgent",
11
- "prompt": "A source file was modified. Check if the corresponding test file in tests/unit/ needs to be updated to match the changes."
12
- }
13
- }
1
+ {
2
+ "name": "Test Mirror Reminder",
3
+ "version": "1.0.0",
4
+ "description": "Reminds to update tests when source files change",
5
+ "when": {
6
+ "type": "fileEdited",
7
+ "patterns": ["src/cloudshellgpt/*.py"]
8
+ },
9
+ "then": {
10
+ "type": "askAgent",
11
+ "prompt": "A source file was modified. Check if the corresponding test file in tests/unit/ needs to be updated to match the changes."
12
+ }
13
+ }
@@ -1,13 +1,13 @@
1
- {
2
- "mcpServers": {
3
- "cloudshellgpt": {
4
- "command": "csgpt",
5
- "args": ["mcp", "serve"],
6
- "env": {
7
- "AWS_REGION": "us-east-1"
8
- },
9
- "disabled": false,
10
- "autoApprove": ["aws_translate", "aws_explain", "aws_cost_preview"]
11
- }
12
- }
13
- }
1
+ {
2
+ "mcpServers": {
3
+ "cloudshellgpt": {
4
+ "command": "csgpt",
5
+ "args": ["mcp", "serve"],
6
+ "env": {
7
+ "AWS_REGION": "us-east-1"
8
+ },
9
+ "disabled": false,
10
+ "autoApprove": ["aws_translate", "aws_explain", "aws_cost_preview"]
11
+ }
12
+ }
13
+ }