pycastle 0.2.0.2.dev0__tar.gz → 0.2.0.3__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 (105) hide show
  1. pycastle-0.2.0.3/.github/workflows/publish.yml +95 -0
  2. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/PKG-INFO +1 -1
  3. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/pyproject.toml +2 -0
  4. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle.egg-info/PKG-INFO +1 -1
  5. pycastle-0.2.0.2.dev0/.github/workflows/publish.yml +0 -104
  6. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/.gitignore +0 -0
  7. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/.python-version +0 -0
  8. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/CLAUDE.md +0 -0
  9. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/CONTEXT.md +0 -0
  10. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/LICENSE +0 -0
  11. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/README.md +0 -0
  12. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/docs/adr/0001-runtime-dependency-installation.md +0 -0
  13. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/docs/adr/0002-cli-native-model-shorthand-resolution.md +0 -0
  14. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/docs/agents/domain.md +0 -0
  15. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/docs/agents/issue-tracker.md +0 -0
  16. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/docs/agents/triage-labels.md +0 -0
  17. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/setup.cfg +0 -0
  18. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/__init__.py +0 -0
  19. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/_types.py +0 -0
  20. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/agent_output_protocol.py +0 -0
  21. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/agent_result.py +0 -0
  22. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/agent_runner.py +0 -0
  23. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/build_command.py +0 -0
  24. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/config/__init__.py +0 -0
  25. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/config/loader.py +0 -0
  26. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/container_runner.py +0 -0
  27. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/.gitignore +0 -0
  28. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/Dockerfile +0 -0
  29. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/config.py +0 -0
  30. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/coding-standards/deep-modules.md +0 -0
  31. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/coding-standards/interfaces.md +0 -0
  32. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/coding-standards/mocking.md +0 -0
  33. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/coding-standards/refactoring.md +0 -0
  34. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/coding-standards/tests.md +0 -0
  35. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/implement-prompt.md +0 -0
  36. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/merge-prompt.md +0 -0
  37. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/plan-prompt.md +0 -0
  38. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/preflight-issue.md +0 -0
  39. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/defaults/prompts/review-prompt.md +0 -0
  40. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/docker_session.py +0 -0
  41. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/errors.py +0 -0
  42. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/init_command.py +0 -0
  43. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/iteration/__init__.py +0 -0
  44. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/iteration/_deps.py +0 -0
  45. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/iteration/_phase_row.py +0 -0
  46. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/iteration/_utils.py +0 -0
  47. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/iteration/implement.py +0 -0
  48. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/iteration/merge.py +0 -0
  49. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/iteration/planning.py +0 -0
  50. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/iteration/preflight.py +0 -0
  51. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/labels.py +0 -0
  52. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/main.py +0 -0
  53. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/orchestrator.py +0 -0
  54. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/prompt_pipeline.py +0 -0
  55. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/rich_status_display.py +0 -0
  56. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/services/__init__.py +0 -0
  57. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/services/_base.py +0 -0
  58. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/services/claude_service.py +0 -0
  59. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/services/docker_service.py +0 -0
  60. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/services/git_service.py +0 -0
  61. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/services/github_service.py +0 -0
  62. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/status_display.py +0 -0
  63. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/stream_session.py +0 -0
  64. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle/worktree.py +0 -0
  65. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle.egg-info/SOURCES.txt +0 -0
  66. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle.egg-info/dependency_links.txt +0 -0
  67. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle.egg-info/entry_points.txt +0 -0
  68. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle.egg-info/requires.txt +0 -0
  69. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/src/pycastle.egg-info/top_level.txt +0 -0
  70. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/__init__.py +0 -0
  71. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/conftest.py +0 -0
  72. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_agent_output_protocol.py +0 -0
  73. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_agent_result.py +0 -0
  74. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_agent_runner.py +0 -0
  75. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_build_command.py +0 -0
  76. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_claude_service.py +0 -0
  77. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_config_new.py +0 -0
  78. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_container_runner.py +0 -0
  79. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_default_prompts.py +0 -0
  80. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_deps.py +0 -0
  81. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_docker_service.py +0 -0
  82. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_docker_session.py +0 -0
  83. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_errors.py +0 -0
  84. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_git_service.py +0 -0
  85. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_github_service.py +0 -0
  86. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_implement.py +0 -0
  87. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_init_command.py +0 -0
  88. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_integration.py +0 -0
  89. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_iteration.py +0 -0
  90. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_labels.py +0 -0
  91. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_main.py +0 -0
  92. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_merge.py +0 -0
  93. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_orchestrator.py +0 -0
  94. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_phase_row.py +0 -0
  95. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_plain_status_display.py +0 -0
  96. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_plan.py +0 -0
  97. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_planning.py +0 -0
  98. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_preflight.py +0 -0
  99. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_prompt_pipeline.py +0 -0
  100. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_prompt_utils.py +0 -0
  101. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_status_display.py +0 -0
  102. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_stream_session.py +0 -0
  103. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_subprocess_service.py +0 -0
  104. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_utils.py +0 -0
  105. {pycastle-0.2.0.2.dev0 → pycastle-0.2.0.3}/tests/test_worktree.py +0 -0
@@ -0,0 +1,95 @@
1
+ name: Publish
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - 'v*.*.*'
9
+ pull_request:
10
+ branches:
11
+ - main
12
+
13
+ jobs:
14
+ test:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.12"
21
+ - run: pip install -e ".[dev]"
22
+ - run: ruff check
23
+ - run: mypy src
24
+ - run: pytest
25
+
26
+ build:
27
+ runs-on: ubuntu-latest
28
+ needs: test
29
+ if: github.event_name == 'push'
30
+ outputs:
31
+ is_tag: ${{ steps.version.outputs.is_tag }}
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ with:
35
+ fetch-depth: 0
36
+ fetch-tags: true
37
+
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: "3.12"
41
+
42
+ - name: Compute version
43
+ id: version
44
+ run: |
45
+ pip install setuptools-scm
46
+ VERSION=$(python -m setuptools_scm)
47
+ echo "Computed version: $VERSION"
48
+ if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
49
+ if [[ "$VERSION" == *".dev"* ]]; then
50
+ echo "ERROR: dev version on tag build" >&2
51
+ exit 1
52
+ fi
53
+ echo "is_tag=true" >> "$GITHUB_OUTPUT"
54
+ else
55
+ echo "is_tag=false" >> "$GITHUB_OUTPUT"
56
+ fi
57
+ echo "SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYCASTLE=$VERSION" >> "$GITHUB_ENV"
58
+
59
+ - name: Build
60
+ run: pip install build && python -m build
61
+
62
+ - uses: actions/upload-artifact@v4
63
+ with:
64
+ name: dist
65
+ path: dist/
66
+
67
+ publish-testpypi:
68
+ runs-on: ubuntu-latest
69
+ needs: build
70
+ if: needs.build.outputs.is_tag == 'false'
71
+ environment: testpypi
72
+ permissions:
73
+ id-token: write
74
+ steps:
75
+ - uses: actions/download-artifact@v4
76
+ with:
77
+ name: dist
78
+ path: dist/
79
+ - uses: pypa/gh-action-pypi-publish@release/v1
80
+ with:
81
+ repository-url: https://test.pypi.org/legacy/
82
+
83
+ publish-pypi:
84
+ runs-on: ubuntu-latest
85
+ needs: build
86
+ if: needs.build.outputs.is_tag == 'true'
87
+ environment: pypi
88
+ permissions:
89
+ id-token: write
90
+ steps:
91
+ - uses: actions/download-artifact@v4
92
+ with:
93
+ name: dist
94
+ path: dist/
95
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycastle
3
- Version: 0.2.0.2.dev0
3
+ Version: 0.2.0.3
4
4
  Summary: Python orchestrator for autonomous Claude Code agents in Docker
5
5
  License: MIT License
6
6
 
@@ -36,6 +36,8 @@ build-backend = "setuptools.build_meta"
36
36
 
37
37
  [tool.setuptools_scm]
38
38
  local_scheme = "no-local-version"
39
+ version_scheme = "guess-next-dev"
40
+ fallback_version = "0.0.0"
39
41
 
40
42
  [tool.setuptools.packages.find]
41
43
  where = ["src"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycastle
3
- Version: 0.2.0.2.dev0
3
+ Version: 0.2.0.3
4
4
  Summary: Python orchestrator for autonomous Claude Code agents in Docker
5
5
  License: MIT License
6
6
 
@@ -1,104 +0,0 @@
1
- name: Publish
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
- tags:
8
- - 'v*.*.*'
9
- pull_request:
10
- branches:
11
- - main
12
-
13
- jobs:
14
- test:
15
- runs-on: ubuntu-latest
16
- steps:
17
- - uses: actions/checkout@v4
18
- with:
19
- fetch-depth: 0
20
-
21
- - uses: actions/setup-python@v5
22
- with:
23
- python-version: "3.12"
24
-
25
- - name: Install
26
- run: pip install -e ".[dev]"
27
-
28
- - name: Lint
29
- run: ruff check
30
-
31
- - name: Type-check
32
- run: mypy src
33
-
34
- - name: Test
35
- run: pytest
36
-
37
- publish-testpypi:
38
- runs-on: ubuntu-latest
39
- needs: test
40
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
41
- environment: testpypi
42
- permissions:
43
- id-token: write
44
- contents: read
45
- steps:
46
- - uses: actions/checkout@v4
47
- with:
48
- fetch-depth: 0
49
- fetch-tags: true
50
-
51
- - uses: actions/setup-python@v5
52
- with:
53
- python-version: "3.12"
54
-
55
- - name: Install build
56
- run: pip install build setuptools-scm
57
-
58
- - name: Show computed version
59
- run: python -m setuptools_scm
60
-
61
- - name: Build
62
- run: python -m build
63
-
64
- - name: Publish to TestPyPI
65
- uses: pypa/gh-action-pypi-publish@release/v1
66
- with:
67
- repository-url: https://test.pypi.org/legacy/
68
-
69
- publish-pypi:
70
- runs-on: ubuntu-latest
71
- needs: test
72
- if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
73
- environment: pypi
74
- permissions:
75
- id-token: write
76
- contents: read
77
- steps:
78
- - uses: actions/checkout@v4
79
- with:
80
- fetch-depth: 0
81
- fetch-tags: true
82
-
83
- - uses: actions/setup-python@v5
84
- with:
85
- python-version: "3.12"
86
-
87
- - name: Install build
88
- run: pip install build setuptools-scm
89
-
90
- - name: Verify tag matches HEAD and version is final
91
- run: |
92
- git describe --tags --exact-match HEAD
93
- VERSION=$(python -m setuptools_scm)
94
- echo "Computed version: $VERSION"
95
- if [[ "$VERSION" == *".dev"* ]]; then
96
- echo "ERROR: dev version on tag build — tag not visible to setuptools-scm" >&2
97
- exit 1
98
- fi
99
-
100
- - name: Build
101
- run: python -m build
102
-
103
- - name: Publish to PyPI
104
- uses: pypa/gh-action-pypi-publish@release/v1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes